一篇文章学会Matplotlib
一篇文章学会Matplotlib
简介
本文通过大量案例,讲解Matplotlib的基础语法。
语法
以下是 Matplotlib 的常见语法:
- 导入库:
import matplotlib.pyplot as plt
- 绘图:
plt.plot(x, y)
x
和y
都是数字列表或数组,指定了数据点的水平和垂直坐标值。
- 显示绘图:
plt.show()
- 添加标签、标题及轴:
plt.xlabel('X Label')
plt.ylabel('Y Label')
('Title')
- 自定义样式:
- 线条颜:
'r'
(红)、'g'
(绿)、'b'
(蓝) - 点标记:
'o'
(圆形)、'^'
(向上三角形)、's'
(正方形) - 线型:
'-'
(实线)、'--'
(虚线) - 线宽:
linewidth=
- 标记尺寸:
markersize=12
- 线条颜:
- 定义子图:
- 建立网格:
fig, axs = plt.subplots(rows, cols)
- 访问子图:
axs[row][col]
- 设置子图标题:
axs[row][col].set_title('Title')
- 在子图中绘制:‘axs[row][col].plot(x, y)’ 或
axs[row][col].bar(x, y)
等。
- 建立网格:
- 保存图像到文件:
plt.savefig('file_name.png', dpi=00, bbox_inches='tight')
dpi
定义每英寸的像素点数。bbox_inches
选项用于选择“紧凑”(tight)或“松散”(loose)布局
- 其它常用:
plt.grid(True)
添加网格plt.legend()
添加图例plt.xticks()
设置x轴刻度的位置plt.yticks()
设置y轴刻度的位置plt.xlim()
设置x轴坐标范围plt.ylim()
设置y轴坐标范围plt.subplots_adjust()
调整子图之间的间距和边距。- 以下是更多的Matplotlib语法和细节:
- 三维绘图: Matplotlib中还有许多用于创建D图形的功能,其中最常见的是使用mplotd工具包。导入的包名仍然是“mpl_”,并且可以在
plt.subplots()
函数中指定一个projection="d"
参数来将轴转换成D。 - 数据标准化: 在某些情况下,需要将数据规范化或者使其可视化。Matplotlib提供了一些方便快捷的API帮助您完成此项任务。例如,通过诸如
plt.hist()
或plt.boxplot()
之类的函数自动对数据进行标准化处理。 - 支持数学表达式:Matplotlib能够支持Latex编写的数学表达式,只需在文本字符串前加一个“$”即可。
- 将图表嵌入到GUI应用程序:将Matplotlib图表嵌入到Python GUI应用程序中是一种常见的用例。这可以通过在PyQt、Tkinter以及wxPython等GUI工具包中内置Matplotlib交互式API来实现。
- 制定绘图风格:除了上面列出的样式选项之外,Matplotlib还提供了许多其他可调整的属性,例如背景颜、网格线条宽度和填充等。可以通过定义
matplotlibrc
文件或动态配置选项来指定自定义样式。也可以在Python脚本中针对特定的图形组件直接访问这些属性并进行设置或更改。 - 子图上的多行文本: 有时需要添加多行注释或标注,Matplotlib可以支持在子图上使用text()函数实现类似注释的目的。
讲解
绘制折线图
代码语言:javascript代码运行次数:0运行复制import matplotlib.pyplot as plt
x = [1, 2, , 4, 5]
y = [10, 8, 6, 4, 2]
plt.plot(x, y) # 在坐标轴上绘制线条
plt.xlabel('X Label') # 添加x轴标签
plt.ylabel('Y Label') # 添加y轴标签
('Line Chart Example') # 添加标题
plt.show() # 显示图形
这个示例演示了如何使用Matplotlib绘制一个折线图。列表x
和y
分别包含水平和垂直坐标数据,并使用plt.plot()
函数连接它们以绘制线条。添加标题、坐标轴标签和刻度标签可以提高图表可阅读性。
绘制柱状图
代码语言:javascript代码运行次数:0运行复制import matplotlib.pyplot as plt #导入Matplotlib模块
x = ['A', 'B', 'C', 'D', 'E'] #定义横轴刻度标签
y = [10, 8, 6, 4, 2] #定义纵轴数据值
plt.bar(x, y, width=0.5, align='center', color=['red', 'blue', 'green', 'purple', 'orange']) #调用bar()函数创建柱状图,并指定参数
# 参数width为柱宽,默认为0.8;参数align为柱在标记上的对齐方式,默认为'edge'
# 在本例中,设置了柱的宽为0.5并居中对齐,同时也指定了每个条形的颜。
plt.xlabel('Categories') #添加x轴标题
plt.ylabel('Values') #添加y轴标题
('Bar Chart Example') #设置图表标题
plt.show() #显示图表
这个示例演示了如何绘制一个垂直柱状图。x
包含水平标签(类别),而y
则包含垂直值。plt.bar()
函数用于绘制它们,并提供了许多样式选项,如’width’、'align’和 ‘color’。
绘制散点图
代码语言:javascript代码运行次数:0运行复制import matplotlib.pyplot as plt #导入Matplotlib模块
x = [1, 2, , 4, 5] #定义x轴数据
y = [10, 8, 6, 4, 2] #定义y轴数据
colors = ['red', 'green', 'yellow', 'blue', 'purple'] #定义散点的颜列表
plt.scatter(x, y, s=100, c=colors, marker='o', alpha=0.5)
#调用scatter()函数创建散点图,并指定参数
# 参数s为散点的大小,默认为20;参数c为每个点的颜;参数marker指定每个点形状(在此为圆);alpha参数设置点的透明度。
plt.xlabel('X Label') #添加x轴标签
plt.ylabel('Y Label') #添加y轴标签
('Scatter Plot Example') #添加标题
plt.show() #显示图表
这个示例演示了如何绘制一个简单的散点图。列表x
和y
包含水平和垂直坐标数据,而colors列表则定义了用于每个数据点的颜。使用plt.scatter()
函数确定样式参数(如点的大小和形状),以及通过alpha参数调整点的透明度。
绘制饼图
代码语言:javascript代码运行次数:0运行复制import matplotlib.pyplot as plt #导入Matplotlib模块
labels = ['A', 'B', 'C', 'D'] #定义标签labels
data = [0, 20, 10, 40] #定义数据
colors = ['#ff9999', '#66bff', '#99ff99', '#ffcc99'] #定义饼图显示区域颜
plt.pie(data, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
#调用pie()函数创建饼图,并指定参数
# 参数labels为饼图中各部分的标签;参数colors给出了用于稳定饼图底的四种颜.
# 自动百分比句型说明每个区域占用的百分比;startangle指定旋转图表的起始角度。
('Pie Chart Example') #设置图表标题
plt.show() #显示图表
这个示例演示了如何绘制一个简单的饼图。plt.pie()
函数用于绘制它,参数中包含数据列表’数据’和自动标签生成器’labels’。 还说明了其他一些如颜(‘colors’)、筏车(‘startangle’)和值显示格式(‘autopct’)等选项。
绘制热力图
代码语言:javascript代码运行次数:0运行复制import numpy as np
import matplotlib.pyplot as plt
data = np.array([[1, 2, ], [4, 5, 6], [7, 8, 9]]) #用numpy模块创建一个x的矩阵并赋值
heatmap = plt.pcolor(data, cmap=Blues) #调用pcolor()方法为数据生成颜热图,并传入自定义配和颜比例尺。
() #调用colorbar()方法给图表添加颜条。
plt.xticks(np.arange(0.5, len(['A', 'B', 'C']) + 0.5), ['A', 'B', 'C']) #设定x轴刻度、标签和范围
plt.yticks(np.arange(0.5, len(['D', 'E', 'F']) + 0.5), ['D', 'E', 'F']) #设定y轴刻度、标签和范围
('Heatmap Example') #设置图表标题
plt.show() #显示图表
这个示例演示了如何绘制一个热力图。二维umPy数组data
存储数据,而’plt.pcolor()'函数用于创建矩阵颜图。通过添加xticks()
和yticks()
函数、并使用值范围(0.5- len + 0.5)调整刻度的位置。在此之上还展示了如何添加图例标签(使用()
函数来调用详细颜条)。
绘制D图形
代码语言:javascript代码运行次数:0运行复制import numpy as np
from mpl_ import AxesD
import matplotlib.pyplot as plt
# 定义一个新的D坐标系
fig = plt.figure() #生成一张新的图片
ax = fig.add_subplot(111, projection='d') #在其中增加一个子图,projection='d'参数告诉Matplotlib要创建D图像
# 生成X、Y的等间隔数字,并根据它们的组合生成Z
x = np.linspace(-1, 1, 100) # 生成等间隔数字-1到1,共100个数值
y = np.linspace(-1, 1, 100) # 同理
X, Y = (x, y) # 根据输入的两个分别一维的函数向量创建相应的二维矩阵用于D图像的表面绘制
Z = np.sin(np.sqrt(X**2 + Y**2)) # 根据X和Y数组生成Z数组
# 在D坐标系中绘制D曲面
ax.plot_surface(X, Y, Z, cmap=Blues) #调用plot_surface()方法和传入自定义配,生成曲面图效果。
ax.set_xlabel('X Label') #设置x轴标签
ax.set_ylabel('Y Label') #设置y轴标签
ax.set_zlabel('Z Label') #设置z轴标签
('D Plot Example') #设置图表标题
plt.show() #显示图表
这个示例演示了如何创建简单的三维坐标系。第一个代码块定义了一个基础的D坐标轴对象,然后根据linspace()
函数的参数定义图形数据。使用’()'生成相应的网格,并在采用sin()函数计算定义的图形Z值,最后绘制三维曲面并为其添加轴标签。
带注释的折线图
代码语言:javascript代码运行次数:0运行复制import matplotlib.pyplot as plt #导入Matplotlib模块
x = [1, 2, , 4, 5] #定义x轴数据
y = [10, 8, 6, 4, 2] #定义y轴数据
plt.plot(x, y) #用plot()函数绘制折线图
plt.xlabel('X Label') #设置x轴标签
plt.ylabel('Y Label') #设置y轴标签
('Line Chart with Annotati') #设置标题
# 打开交互模式并添加文本注释
plt.ion() #打开交互模式
plt.annotate('Low point', xy=(4, 2), xytext=(.5, 8),
arrowprops=dict(facecolor='black', shrink=0.05))
# 在指定点(4, 2)处增加一条注释线,并给该行添加一个说明小箭头。
plt.annotate('Interesting Point', xy=(, 6), xytext=(1.5, 9),
arrowprops=dict(facecolor='red', shrink=0.05))
# 让注释点稍微偏离目标点坐标(, 6),同时以红为基调。
plt.show() #展示图表结果
在这个示例中,除了在上一个示例中所看到的基础功能之外,这里展示了如何通过在图形上添加注释来增强Matplotlib图表。函数’anotate()用于往图表上添加箭头和注释文字(在此示例中,我们可在关键点进行注释)。
ion()`函数打开交互模式以允许实时进行比较底部和有趣的点的选取过程。
绘制多个子图
代码语言:javascript代码运行次数:0运行复制import numpy as np
import matplotlib.pyplot as plt
# 生成一些示例数据
x = np.linspace(0, 10, 100) #创建线性空间数组,并精准地定义起始点、结束点和数量。
y1 = np.sin(x) #根据 x 数组生成 y1 数据
y2 = (x) #根据 x 数组生成 y2 数据
# 创建网格并放置两个子图
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True)
# 调用subplots()方法,创建两行一列的子图网格。sharex=True表示共享横坐标。
# 在第一个子图中绘制sin函数
ax1.plot(x, y1, 'r-', linewidth=2) #调用plot()函数,在第一个子图中绘制sin函数,使用以红为基调的单匹配线条。
ax1.set_ylabel('Sin') #设置y轴标签
# 在第二个子图中绘制cos函数
ax2.plot(x, y2, 'g-', linewidth=2) #调用plot()函数,在第二个子图中绘制cos函数,用以绿为基调的单匹配线条。
ax2.set_xlabel('Time (s)') #设置x轴标签
ax2.set_ylabel('Cos') #设置y轴标签
# 添加标题
plt.suptitle('Example of Multiple Subplots') #用suptitle()函数为整个图表添加一个标题
plt.show() #显示图表
通过上面定义的subplots()
函数和sharex = True
参数,可以创建具有多个子图的Matplotlib图表。
然后简单地在单独的子图中进行x和y轴标签的设置,然后添加一个总标题,以构建命令自己独立的图表。
导出Matplotlib图形
代码语言:javascript代码运行次数:0运行复制import numpy as np
import matplotlib.pyplot as plt
# 生成一些示例数据
x = np.linspace(0, 10, 100) #使用numpy模块中的np.linspace()函数生成一系列等间隔样本点
y = np.sin(x)
# 创建新的图形并绘制sin函数
fig = plt.figure() #创建一个新的图形
plt.plot(x, y, 'r-', linewidth=2) #用plot()函数在该图形上绘制以红为基调的折线状图表
plt.xlabel('Time (s)') #设置x轴标签
plt.ylabel('Amplitude') #设置y轴标签
('Example of a Matplotlib Figure') #设置标题
# 将图表保存成PDF文件
plt.savefig('example.pdf') #使用savefig()函数将该图形以pdf格式保存
plt.show() #展示图表结果
在多数情况下,如果要将Matplotlib图表嵌入到GUI应用程序中,则无需导出它至外部的文件。但是,将图表作为图像文件或数据可视化存储在挂网站上等情况,在确保输出效果如预期时,可能会需要输出图形。savefig()
函数直接调用图表实例,并传入目标格式的文件名,在本例中,就是PDF文件格式。
这些示例演示了Matplotlib的核心API语法和基础功能配置项,足以使您能够开始从零构建一张完美呈现化的图表。当然,Matplotlib提供更高级的功能和选项,需要仔细理解文档,针对开发任务切换您所需要的关键字参数并进行进一步探索。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent 删除matplotlib函数数据数组图表#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上一篇:机器学习练手项目
下一篇:计算机网络的基本概念
推荐阅读
留言与评论(共有 15 条评论) |
本站网友 云图票房 | 21分钟前 发表 |
同时也指定了每个条形的颜 | |
本站网友 yiji | 5分钟前 发表 |
筏车(‘startangle’)和值显示格式(‘autopct’)等选项 | |
本站网友 怎样去斑 | 9分钟前 发表 |
bbox_inches选项用于选择“紧凑”(tight)或“松散”(loose)布局 其它常用: plt.grid(True) 添加网格plt.legend() 添加图例plt.xticks() 设置x轴刻度的位置plt.yticks() 设置y轴刻度的位置plt.xlim() 设置x轴坐标范围plt.ylim() 设置y轴坐标范围plt.subplots_adjust() 调整子图之间的间距和边距 | |
本站网友 frontpage2003 | 13分钟前 发表 |
坐标轴标签和刻度标签可以提高图表可阅读性 | |
本站网友 苏25 | 24分钟前 发表 |
并指定参数 # 参数width为柱宽 | |
本站网友 宽带中国游戏公社 | 5分钟前 发表 |
projection='d'参数告诉Matplotlib要创建D图像 # 生成X | |
本站网友 心里小小的甜蜜 | 22分钟前 发表 |
() #调用colorbar()方法给图表添加颜条 | |
本站网友 executescalar | 29分钟前 发表 |
共100个数值 y = np.linspace(-1 | |
本站网友 出租 | 2分钟前 发表 |
并使用值范围(0.5- len + 0.5)调整刻度的位置 | |
本站网友 阴齿2 | 7分钟前 发表 |
并指定参数 # 参数labels为饼图中各部分的标签;参数colors给出了用于稳定饼图底的四种颜. # 自动百分比句型说明每个区域占用的百分比;startangle指定旋转图表的起始角度 | |
本站网友 南京店铺出租 | 1分钟前 发表 |
在确保输出效果如预期时 | |
本站网友 脑血栓偏方 | 4分钟前 发表 |
导出Matplotlib图形代码语言:javascript代码运行次数:0运行复制import numpy as np import matplotlib.pyplot as plt # 生成一些示例数据 x = np.linspace(0 | |
本站网友 我的老师宋娜 | 18分钟前 发表 |
linewidth=2) #用plot()函数在该图形上绘制以红为基调的折线状图表 plt.xlabel('Time (s)') #设置x轴标签 plt.ylabel('Amplitude') #设置y轴标签 ('Example of a Matplotlib Figure') #设置标题 # 将图表保存成PDF文件 plt.savefig('example.pdf') #使用savefig()函数将该图形以pdf格式保存 plt.show() #展示图表结果在多数情况下 | |
本站网友 马鞍山婚庆 | 28分钟前 发表 |
显示绘图:plt.show() 添加标签 |