Pyplot模块
简介
matplotlib.pyplot
是一个函数集合,使得Matplotlib的使用方式类似于MATLAB。每个pyplot
函数都会对图形进行一些修改,例如创建图形、在图形中创建绘图区域、在绘图区域中绘制线条、为图形添加标签等。
在matplotlib.pyplot
中,各种状态在函数调用之间被保留,以便它能够跟踪诸如当前图形、绘图区域等,而绘图函数会指向当前坐标轴(请注意,这里和文档中大多数地方所说的“axes”指的是图形的坐标轴部分,而不是严格的数学术语,表示多个轴)。
使用pyplot
生成可视化非常快速:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.show()
之所以x轴范围是0-3,而y轴范围是1-4,是因为如果向plot
提供一个单一的列表或数组,Matplotlib会假设它是一系列的y值,并自动为你生成x值。由于Python的范围从0开始,所以默认的x向量与y的长度相同,但从0开始;因此,x的数据是[0, 1, 2, 3]。
plot
是一个多功能的函数,可以接受任意数量的参数。例如,要绘制x和y的关系,你可以这样写:
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
通过这段代码,你可以看到如何使用pyplot
绘制简单的线图。首先导入matplotlib.pyplot
,然后使用plt.plot()
绘制数据,最后通过plt.show()
显示图形。在这个示例中,我们绘制了一个包含指定y值的线图,自动生成对应的x值。这个过程非常简洁和快速。
格式化绘图样式
对于每一组x、y参数,都有一个可选的第三个参数,它是格式字符串,用于指示绘图的颜色和线条类型。格式字符串的字母和符号来自于MATLAB,你可以将颜色字符串与线条样式字符串连接在一起。默认的格式字符串是’b-',表示实心的蓝色线条。例如,要绘制带有红色圆点的图形,你可以使用以下代码:
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])
plt.show()
该示例中的axis
函数接受一个由[xmin, xmax, ymin, ymax]
组成的列表,用于指定坐标轴的视口范围。
完整的样式使用可以参考文档:matplotlib.pyplot.plot — Matplotlib 3.7.2 documentation
如果Matplotlib仅限于使用列表进行操作,那么它在数值处理方面将会相当无用。通常,您会使用NumPy数组。实际上,所有的序列在内部都会被转换为NumPy数组。下面的示例演示了如何在一个函数调用中使用数组来绘制具有不同格式样式的多条线:
import matplotlib.pyplot as plt
import numpy as np
# 设置全局字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定微软雅黑或其他中文字体
# 创建一个均匀取样的时间间隔,间隔为0.2
t = np.arange(0., 5., 0.2)
# 使用不同格式样式绘制多条线
plt.plot(t, t, 'r--', label='线性') # 红色虚线
plt.plot(t, t**2, 'bs', label='平方') # 蓝色方块
plt.plot(t, t**3, 'g^', label='立方') # 绿色三角形
# 设置x轴标签和y轴标签
plt.xlabel('X轴')
plt.ylabel('Y轴')
# 添加图例
plt.legend()
# 添加标题
plt.title('不同格式样式的多条线')
# 显示图形
plt.show()
使用关键字字符串进行绘图
在某些情况下,可能拥有的数据格式允许通过字符串访问特定的变量。例如,使用nu