matplotlib库的使用
1.导入
1
| import matplotlib.pyplot as plt
|
2.启用
在matplotlib中,plt.ion()
是一个函数调用,用于启用交互式模式(interactive mode)。交互式模式允许在图形窗口打开时动态更新和修改图形,而不需要重新绘制整个图形。这对于实时数据可视化和动画非常有用。
在调用plt.ion()
之后,使用plt.plot()
或其他绘图函数创建的图形将在窗口中立即显示,而不需要等到整个图形创建完成。此外,可以通过修改已创建的图形对象的属性或添加新的绘图元素来动态更新图形,而不必重新绘制整个图形。
1 2 3 4 5 6 7 8 9 10 11 12
| import matplotlib.pyplot as plt
plt.ion()
plt.figure()
for i in range(10): plt.plot([i], [i], 'ro') plt.pause(0.5)
|
在这个例子中,plt.ion()
使得每次调用plt.plot()
都会立即更新图形窗口,而不必等到所有点都添加完成。
3.窗口
这行代码创建了一个新的图形窗口,并将其存储在变量 fig
中。在这个例子中,数字参数 1
是一个可选的参数,表示创建的图形的标识符或编号。如果没有提供这个参数,matplotlib会自动为图形分配一个编号。
这行代码的效果类似于在交互式模式下调用 plt.figure()
函数来创建一个新的图形窗口,但是它将返回的图形对象存储在变量 fig
中,以便之后可以方便地引用和操作它。
在创建图形之后,你可以使用 fig
对象进行各种操作,例如添加子图、设置图形属性、保存图形等。示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import matplotlib.pyplot as plt
fig = plt.figure(1)
ax = fig.add_subplot(111) ax.plot([1, 2, 3], [4, 5, 6])
fig.suptitle('My First Figure')
plt.show()
|
在这个示例中,fig
对象用于添加子图、设置标题,并最后显示图形。
4.窗口方法
1.add_subplot()
具体来说,add_subplot()
方法接受三个参数:行数、列数和子图编号。
例如:参数(223)
表示图形窗口将被分割成一个 2x2 的网格,并且当前子图是这个网格中的第三个子图。
1 2 3 4 5 6 7 8 9
| mport matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(223, projection='3d') ax1 = fig.add_subplot(222, projection='3d')
|
效果:
2.scatter()
窗口使用:
1 2 3 4 5 6 7 8 9 10 11
| import matplotlib.pyplot as plt
plt.figure()
x = [1, 2, 3, 4, 5] y = [5, 4, 3, 2, 1]
plt.scatter(x, y)
|
子图使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(223, projection='3d') ax1 = fig.add_subplot(222, projection='3d')
x = [1, 2, 3, 4, 5] y = [5, 4, 3, 2, 1] z = [1, 2, 3, 4, 5] ax.scatter(x, y, z)
|
效果:
3.plot()
plot
函数用于绘制线图,它可以在二维或三维空间中显示数据点之间的连接关系。线图通常用于显示数据随某个变量(通常是 x 轴变量)的变化情况,例如时间序列数据或者变量之间的函数关系。
窗口使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import matplotlib.pyplot as plt
plt.figure()
x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.title('2D Line Plot') plt.xlabel('X') plt.ylabel('Y')
plt.show()
|
子图使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = [1, 2, 3, 4, 5] y = [5, 4, 3, 2, 1] z = [1, 2, 3, 4, 5] ax.plot(x, y, z)
ax.set_title('3D Scatter Plot') ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z')
plt.show()
|
效果:
5.清除
plt.clf()
是 matplotlib 中的一个函数,用于清除当前图形窗口中的所有绘图元素,使得窗口变为空白。其作用类似于清除画布上的所有内容,相当于 “clear figure”。
具体而言,plt.clf()
会清除当前活动的图形(active figure),这是通过最近创建或获取的图形来识别的。调用 plt.clf()
后,图形窗口仍然保持打开状态,但其中的内容被清除。
这在需要更新图形内容或者需要重新绘制时非常有用,而不必关闭窗口并再次创建新的图形。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import matplotlib.pyplot as plt
plt.figure()
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
plt.pause(3) plt.clf()
plt.plot([4, 5, 6], [7, 8, 9])
plt.show()
|
6.暂停
plt.pause(1)
是一个 matplotlib 函数调用,用于暂停程序执行指定的时间(以秒为单位)。在这段时间内,程序会暂停执行,并且图形窗口将保持显示状态,以便用户有足够的时间观察图形。
通常,plt.pause()
函数用于交互式图形显示中,特别是在需要动态更新图形或在图形窗口中显示一段时间后等待用户交互时。在这段暂停期间,用户可以浏览图形,然后程序会在指定的时间后继续执行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import matplotlib.pyplot as plt
plt.figure()
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
plt.pause(1)
print("Continuing execution...")
|
7.设置
1 2 3 4
| plt.title('Simple Plot') plt.xlabel('X') plt.ylabel('Y')
|
8.显示