我想知道 matplotlib.pyplot 的plt.plot(x,y)
和plt.show()
命令之间的基本主干流程。
详细说明一下,这段代码:
plt.plot(x , y)
plt.show()
显示所需的图表(没问题)。
此外,代码:
plt.plot(x , y)
plt.plot(p , q)
plt.show()
也可以。 它显示了列表x和amp;创建的两个图。 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:根据我的理解,也许有一个对象正在创建和删除这个过程。但我既不确定也不相信。
提前致谢。
答案 0 :(得分:3)
Pyplot使用或者是所谓的“statemachine”。它存储了许多数字和当前轴和图的参考。调用show
后,将显示所有数字,一旦show
返回,它们将从状态机中删除。
在随后的show
调用中,没有任何数字可供显示,因此未显示输出。
因此,有一些(可能是不成文或隐式的)假设show
在脚本中只调用一次。
值得注意的是,尽管从状态机中删除了数字,但它们仍会保留在内存中,直到它们关闭为止。因此,它们可能会在某些情况下重复使用,具体取决于所需的工作流程。