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

时间:2017-09-27 14:39:07

标签: python python-3.x matplotlib

我想知道 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:根据我的理解,也许有一个对象正在创建和删除这个过程。但我既不确定也不相信。

提前致谢。

1 个答案:

答案 0 :(得分:3)

Pyplot使用或者是所谓的“statemachine”。它存储了许多数字和当前轴和图的参考。调用show后,将显示所有数字,一旦show返回,它们将从状态机中删除。

在随后的show调用中,没有任何数字可供显示,因此未显示输出。

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

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