繁体   English   中英

plt.plot(x,y)和plt.show()如何按照他们的方式工作?

[英]How do plt.plot(x,y) and plt.show() work the way they do?

我想知道matplotlib.pyplot的 plt.plot(x,y)plt.show()命令之间plt.plot(x,y)的基本主干过程。

详细说明一下,这段代码:

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使用或是所谓的“statemachine”。 它存储了许多数字和当前轴和图的参考。 一旦调show ,所有数字都会显示,一旦show返回,它们就会从状态机中删除。

在随后的调用中show没有数字可以显示,因此不显示输出。

因此,有一些(可能是不成文的或隐式的)假设show在脚本中只调用一次。

值得注意的是,尽管从状态机中删除了数字,但它们仍会保留在内存中,直到它们关闭为止。 因此,它们可能会在某些情况下重复使用,具体取决于所需的工作流程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM