关于matplotlib的.show()

2024-03-29 15:56:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用matplotlib生成一些图形,但是我不知道这两种显示图像的方式之间的区别。我已经读了一些关于它的文档,但我还不明白。你知道吗

第一种方式:

import matplotlib.pyplot as plt

plt.figure()
plt.plot(x, y)
plt.show()

第二种方式:

import matplotlib.pyplot as plt

graph = plt.figure()
plt.plot(x, y)
graph.show()

我认为这两种方法做不到相同的事情,但我不清楚。你知道吗

有人能一步一步地解释一下这两种方法吗?你知道吗


Tags: 方法文档图像import图形plotmatplotlibas
3条回答

简化后,plt.show()将启动一个事件循环,并为在pyplot状态内活动的每个图形创建一个图形表示。你知道吗

相反,fig.show(),其中fig是一个figure实例,将只显示这个figure。因为它也不会阻塞,所以它(仅)在交互式会话中有用;否则,由于脚本退出,在显示该图之后,该图将直接关闭。你知道吗

因此,在通常情况下,您更喜欢plt.show()。这并不妨碍您使用面向对象接口。因此,创建和显示图形的推荐方法是

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()

对于两个窗口,你可以重复绘图

import matplotlib.pyplot as plt

fig1, ax1 = plt.subplots()
ax1.plot(x1, y1)

fig2, ax2 = plt.subplots()
ax2.plot(x2, y2)
plt.show()

Matplotlib实现了两种类型的API。一个是基于对象的(graph.show()),另一个是过程的(plt.show()),看起来很像Matlab绘图API。你知道吗

程序API适用于当前图形和/或轴集。你可以用plt.gcf()得到当前图形,用plt.gca()得到当前轴。你知道吗

这里和那里偶尔会有一些语法上的细微差别。例如,如果要设置x轴限制:

plt.xlim([0, 10])

或者

ax = plt.gca()
ax.set_xlim([0, 10])

plt.figure返回被graph = plt.figure()分配给graph的对象。当要更改此对象(绘图)的特定特性时使用此选项,现在可以通过其实例graph基于对象的绘图)引用该对象

您可以使用它,也就是说,如果您想访问图形的轴或标签、子图。。。你知道吗

有关基于对象的打印,请参见https://python4mpia.github.io/plotting/advanced.html

要操作plot对象,必须获得对它的引用(handle),这是通过graph = plt.figure()(cf面向对象编程)完成的

相关问题 更多 >