我正在使用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()
我认为这两种方法做不到相同的事情,但我不清楚。你知道吗
有人能一步一步地解释一下这两种方法吗?你知道吗
简化后,
plt.show()
将启动一个事件循环,并为在pyplot
状态内活动的每个图形创建一个图形表示。你知道吗相反,
fig.show()
,其中fig
是一个figure实例,将只显示这个figure。因为它也不会阻塞,所以它(仅)在交互式会话中有用;否则,由于脚本退出,在显示该图之后,该图将直接关闭。你知道吗因此,在通常情况下,您更喜欢
plt.show()
。这并不妨碍您使用面向对象接口。因此,创建和显示图形的推荐方法是对于两个窗口,你可以重复绘图
Matplotlib实现了两种类型的API。一个是基于对象的(
graph.show()
),另一个是过程的(plt.show()
),看起来很像Matlab绘图API。你知道吗程序API适用于当前图形和/或轴集。你可以用
plt.gcf()
得到当前图形,用plt.gca()
得到当前轴。你知道吗这里和那里偶尔会有一些语法上的细微差别。例如,如果要设置x轴限制:
或者
plt.figure
返回被graph = plt.figure()
分配给graph
的对象。当要更改此对象(绘图)的特定特性时使用此选项,现在可以通过其实例graph
(基于对象的绘图)引用该对象您可以使用它,也就是说,如果您想访问图形的轴或标签、子图。。。你知道吗
有关基于对象的打印,请参见https://python4mpia.github.io/plotting/advanced.html
要操作plot对象,必须获得对它的引用(handle),这是通过
graph = plt.figure()
(cf面向对象编程)完成的相关问题 更多 >
编程相关推荐