Python plt.plot(x,y)和plt.show()是如何工作的?
我想知道在Python plt.plot(x,y)和plt.show()是如何工作的?,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我想知道在plt.plot(x,y)和plt.show()之间进行的基本主干流程matplotlib.pyplot命令 要详细说明一下,这段代码: plt.plot(x , y) plt.show() 显示所需的图形(没有问题) 此外,守则: plt.plot(x , y) plt.plot(p , q) plt.show() 效果也不错它显示由列表x&y和p&q创建的两个图。 现在,我发现在ipython中动态编码时,有一些东西非常有趣 In [73]: plt.plot(x , y) #
plt.plot(x,y)
和plt.show()之间进行的基本主干流程matplotlib.pyplot命令
要详细说明一下,这段代码:
plt.plot(x , y)
plt.show()
显示所需的图形(没有问题)
此外,守则:
plt.plot(x , y)
plt.plot(p , q)
plt.show()
效果也不错它显示由列表x&y和p&q创建的两个图。
现在,我发现在ipython中动态编码时,有一些东西非常有趣
In [73]: plt.plot(x , y)
#normal plotting function.
In [78]: plt.show()
#shows a graph as intended.
In [79]: plt.show()
#shows nothing.
现在,无论我调用多少次plt.show()
(在我调用一次之后),它都不会显示图形为什么会这样?
PS:据我所知,在这个过程中可能会创建和删除一个对象。但我既不确定也不确信
提前感谢。Pyplot使用或是所谓的“状态机”。它存储许多图形以及对当前轴和图形的引用。调用show
后,将显示所有图形,并且show
返回后,这些图形将从状态机中删除
在随后调用show
时,不再显示任何图形,因此不会显示输出
因此,有一些(可能是不成文的或隐含的)假设,show
在脚本中只调用一次
可能值得注意的是,尽管数字从状态机中删除,但它们在关闭之前仍保留在内存中。因此,根据所需的工作流程,在某些情况下可能会重复使用它们。我怀疑这确实是一个重复。您可以将图形等保存到重新显示-一旦show()
完成它的显示@是的,我在发布问题之前偶然发现了超链接的问题。我想知道这是怎么发生的(如果可能的话是为什么)。我知道一旦调用了show()
,就完成了。问题是它是如何完成的。根据链接主题的一段引文,它被显式编码,目的是作为脚本中的最后一行被调用一次。那么这种状态机行为是通过创建和删除对象来控制的,还是这(状态机)完全不同的概念?内部有确保创建的对象。如前所述,它们不是被删除,而是从某种集合中删除。好的。我将阅读更多关于这种状态机类型的工作。谢谢。