[英]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.