Python 数据可视化(一)熟悉Matplotlib

目录

一、安装包

二、先画个折线图

1、修改标签文字和线条粗细

2、内置样式

3、scatter() 绘制散点图

4、scatter() 绘制多个点

5、设置样式

6、保存绘图


数据可视化指的是通过可视化表示来探索和呈现数据集内的规律。

一、安装包

win + R   打开终端

安装 Matplotlib,在终端提示符下执行命令:

python -m pip install --user matplotlib## python -m pip:这个部分表示使用 Python 解释器来运行 pip 模块## --user:这个选项表示将包安装到当前用户的目录中,而不是全局环境## matplotlib:这是安装的具体包的名

结果如下:

二、先画个折线图

import matplotlib.pyplot as pltnums = [1, 2, 4, 8, 16, 32, 64]
# nums = [1, 4, 9, 16, 25, 36]
fig, ax = plt.subplots()
ax.plot(nums)
plt.show()# fig, ax = plt.subplots() 创建了一个图形对象 fig 和一个坐标轴对象 ax# ax.plot(nums) 使用 plot 方法绘制 nums 中的数据

变量 fig 表示由生成的一系列绘图构成的整个图形,变量 ax 表示图形中的绘图。

1、修改标签文字和线条粗细

import matplotlib.pyplot as pltnums = [1, 2, 4, 8, 16, 32, 64]
# nums = [1, 4, 9, 16, 25, 36]
fig, ax = plt.subplots()
ax.plot(nums, linewidth=3)ax.set_title("2**n", fontsize=24)
ax.set_xlabel("Value_2", fontsize=14)
ax.set_ylabel("2**n", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()

结果显示:

        参数 linewidth 决定了 plot() 绘制的线条的粗细;set_title() 方法给绘图指定标题;fontsize 用于指定图中各种文字的大小;tick_params() 方法设置刻度标记的样式。

当你运行如下代码时:

import matplotlib.pyplot as plt# nums = [1, 2, 4, 8, 16, 32, 64]
# input_value = [0, 1, 2, 3, 4, 5, 6]nums = [1, 4, 9, 16, 25, 36]
input_value = [1, 2, 3, 4, 5, 6]
fig, ax = plt.subplots()
# ax.plot(input_value, nums, linewidth=3)
ax.plot(nums, linewidth=3)ax.set_title("n**2", fontsize=24)
ax.set_xlabel("Value_n", fontsize=14)
ax.set_ylabel("n**2", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()

        结果输出:

        

        注意:如果看的仔细的话,上边的图是不是不太对,5的平方怎么到36了。

现在我们改动一行代码:

ax.plot(input_value, nums, linewidth=3)

输出结果:

        在向 plot() 提供一个数值序列时,它假设第一个数据点对应的 x 坐标值为 0,但这里的第一个点对应的 x 坐标值应该为 1。因此将输入的数据也提供给 plot() 函数

2、内置样式

Matplotlib 有很多定义好的内置样式,如果想知道有哪些能用的,可以直接打印出来查看:

print(plt.style.available)# plt 是别名
import matplotlib.pyplot as pltnums = [1, 2, 4, 8, 16, 32, 64]
input_value = [0, 1, 2, 3, 4, 5, 6]plt.style.use('classic')
fig, ax = plt.subplots()
ax.plot(input_value, nums, linewidth=3)ax.set_title("2**n", fontsize=24)
ax.set_xlabel("Value_2", fontsize=14)
ax.set_ylabel("2**n", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

3、scatter() 绘制散点图

绘制单个点,可使用 scatter() 方法,并向它传递该点的 x 坐标值和 y 坐标值:

import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
fig, ax = plt.subplots()
ax.scatter(2, 4)
plt.show()
print(plt.style.available)

输出结果:

设置样式后:

import matplotlib.pyplot as plt
plt.style.use('bmh')
fig, ax = plt.subplots()
ax.scatter(2, 4, s=200)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

4、scatter() 绘制多个点

import matplotlib.pyplot as pltx_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]plt.style.use('bmh')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, s=100)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

        两个列表传递给 scatter() 时,Matplotlib 会依次从每个列表中读取一个值来绘制一个点。要绘制的点的坐标分别为(1, 1)、(2, 4)、(3, 9)、(4, 16)和(5, 25)。但是这样手动设置列表数据,效率不高,试试自动生成数据,并画图。

import matplotlib.pyplot as pltx_values = range(1, 101)
y_values = [x**2 for x in x_values]plt.style.use('seaborn-v0_8-dark-palette')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, s=10)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
# 设置每个坐标轴的取值范围
ax.axis([0, 110, 0, 11_000])plt.show()
print(plt.style.available)

        使用 axis() 方法指定每个坐标轴的取值范围,x轴和 y 轴各自的最小值和最大值。这里将 x 轴的取值范围设置为 0~110,将 y 轴的取值范围设置为 0~11000。

5、设置样式

# 刻度数值的常规表示,当数字过大时会自动转换为科学计数,如下可以常规表示
ax.ticklabel_format(style='plain')# scatter() 传递参数 color 并将其设置为要使用的颜色
ax.scatter(x_values, y_values, color='red', s=10)# 颜色映射:是一个从起始颜色渐变到结束颜色的颜色序列
ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

        参数 c 设置成了一个 y 坐标值列表,并使用参数 cmap 告诉 pyplot 使用哪个颜色映射。这些代码将 y 坐标值较小的点显示为浅蓝色,将 y 坐标值较大的点显示为深蓝色。

6、保存绘图

        将绘图保存到文件中:

plt.savefig('nums_plot.png', bbox_inches='tight')

        第一个实参指定要以什么文件名保存绘图,这个文件将被存储到 xxxx.py 所在的程序目录中。第二个实参指定将绘图多余的空白区域裁剪掉。如果要保留绘图周围多余的空白区域,只需省略这个实参。注意:使用 Path对象,将输出文件存储到其他目录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26213.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测——数据处理

1. Mosaic 数据增强 Mosaic 数据增强步骤: (1). 选择四个图像: 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础。 (2) 确定拼接位置: 设计一个新的画布(输入size的2倍),在指定范围内找出一个随机点(如…

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(六) 导航栏 和 个人信息设置

1.导航栏(navbar) 在components下面 创建NavBar.jsx import { MessageSquare,Settings,User,LogOut} from "lucide-react" import {Link} from "react-router-dom" import { useAuthStore } from "../store/useAuthStore&qu…

如何通过 LlamaIndex 将数据导入 Elasticsearch

作者:来自 Elastic Andre Luiz 逐步介绍如何使用 RAG 和 LlamaIndex 提取数据并进行搜索。 在本文中,我们将使用 LlamaIndex 来索引数据,从而实现一个常见问题搜索引擎。 Elasticsearch 将作为我们的向量数据库,实现向量搜索&am…

yunedit-post ,api测试比postman更好

postman应该是大家最熟悉的api测试软件了,但是由于它是外国软件,使用它的高端功能注册和缴费都比较麻烦。生成在线文档分享也经常无法访问被拦截掉。 这里可以推荐一下yunedit-post,该有的功能都有。 https://www.yunedit.com/postdetail …

Gopeed 各种类型的文件资源下载器 v1.6.7 中文版

Gopeed 是一款由 Go 和 Flutter 开发的下载器。它具有简洁美观的界面以及强大的功能,支持 HTTP、BitTorrent、Magnet 等协议,并且可以在全平台上使用。 开发语言及技术:Gopeed 采用 Go 和 Flutter 进行开发。Go 语言具有高效、简洁的特点&am…

3d投影到2d python opencv

目录 cv2.projectPoints 投影 矩阵计算投影 cv2.projectPoints 投影 cv2.projectPoints() 是 OpenCV 中的一个函数,用于将三维空间中的点(3D points)投影到二维图像平面上。这在计算机视觉中经常用于相机标定、物体姿态估计、3D物体与2D图…

Linux操作系统5-进程信号3(信号产生总结与核心转储)

上篇文章:Linux操作系统5-进程信号2(信号的4种产生方式,signal系统调用)-CSDN博客 本篇Gitee仓库:myLerningCode/l25 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点:核心…

Linux《基础开发工具(上)》

在之前的篇章当中我们已经了解了Linux当中基本的指令以及相关的知识,那么接下来在本篇当中就开始学基本的开发工具,在此我们一共要了解6大开发工具,在此将这些工具的学习分为上中下篇,在本篇当中我们首先要来学习的是yun以及vim,一…

kali liux的下载

Kali Linux | Penetration Testing and Ethical Hacking Linux Distributionhttps://www.kali.org/ VMware虚拟机https://pan.quark.cn/s/aa869ffbf184 【补充一个今天学到的知识昂和内容无关:(遥感)指非接触的远距离探测技术,使用传感器探…

微软AI900认证备考全攻略:开启AI职业进阶之路

在当今数字化时代,人工智能(AI)正深刻地改变着我们的工作和生活。微软AI900认证作为AI领域的权威认证之一,不仅为技术爱好者提供了深入探索AI的机会,更是开启AI职业进阶之路的重要敲门砖。以下是一份全面的备考攻略&am…

【Mark】记录用宝塔+Nginx+worldpress+域名遇到的跨域,301,127.0.0.1,CSS加载失败问题

背景 想要用宝塔搭建worldpress,然后用域名直接转https,隐藏掉ipport。 结果被折磨了1天,一直在死活在301,127.0.0.1打转 还有css加载不了的情况 因为worldpress很多是301重定向的,所以改到最后我都不知道改了什么&am…

算法题001——移动零

移动零 力扣——移动零点击链接即可跳转 这道题的数组被划分为两个区间,前一个区间为 非零元素,而后一个指针是 零元素 我们运用双指针,先定义两个指针,分别为 dest 和 cur , cur用来遍历整个数组,而 dest 表示我们…

Selenium自动化测试:如何搭建自动化测试环境,搭建环境过程应该注意的问题

最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,但是对于没有学过的人来说,通过资料再到自己写的…

mysql 全方位安装教程

下载 MySQL 【官网下载地址】 注意要选择较大的哪个安装包,小的安装包是一个安装器。 我们不用登录,直接下载 直接运行下载好的安装包 MySQL如果是 安装包安装, 可以图形化界面自主配置 如果是压缩包解压, 可以配置 配置文件, 可以解压安装到指定的…

深入刨析 之C++ string类

欢迎来到干货小仓库!!! 没有完美的计划,每个人都在试验的过程中渐渐清晰!!! 1.标准库的string类 a. string是表示字符串的字符串类。 b. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操…

【AI论文】MedVLM-R1:通过强化学习激励视觉语言模型(VLMs)的医疗推理能力

摘要:推理是推进医学影像分析的关键前沿领域,其中透明度和可信度对于赢得临床医生信任和获得监管批准起着核心作用。尽管医学视觉语言模型(VLMs)在放射学任务中展现出巨大潜力,但大多数现有VLM仅给出最终答案&#xff…

深入理解并实现自定义 unordered_map 和 unordered_set

亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 在 C 的标准模板库(STL)中,unorder…

使用ChatGPT-Deep Reaserch两步给出文献综述!

文献综述是学术论文写作中不可或缺的一部分,它不仅是对已有研究的梳理和总结,更是为后续研究奠定理论基础的关键步骤。通过文献综述研究者能够全面了解当前研究领域的现状、主要观点和研究方法,从而找到自己研究的切入点和创新点。这一过程需…

[Java基础] JVM常量池介绍(BeanUtils.copyProperties(source, target)中的属性值引用的是同一个对象吗)

文章目录 1. JVM内存模型2. 常量池中有什么类型?3. 常量池中真正存储的内容是什么4. 判断一个字符串(引用)是否在常量池中5. BeanUtils.copyProperties(source, target)中的属性值引用的是同一个对象吗?6. 获取堆内存使用情况、非堆内存使用情况 1. JVM内…

塔能科技:工厂智慧照明,从底层科技实现照明系统的智能化控制

在全球节能减碳和智慧生活需求激增的背景下,基于“用软件定义硬件,让物联运维更简捷更节能”的产品理念,塔能科技的智慧照明一体化方案如新星般崛起,引领照明行业新方向。现在,我们来深入探究其背后的创新技术。该方案…