matplotlib中plt.draw()和plt.show()之间的区别

49
我想知道为什么有些人在plt.show()之前把plt.draw()放到他们的代码中。对于我的代码来说,plt.draw()似乎并没有改变输出结果。我在互联网上搜索了一下,但没有找到有用的信息。
(假设我们将pyplot导入为from matplotlib import pyplot as plt
1个回答

59

plt.show()会显示当前正在处理的图形。

plt.draw()将重新绘制图形。这允许您在交互模式下工作,并且如果您更改了数据或格式,则允许图形本身更改。

plt.draw文档说明:

在交互模式下使用它来更新已使用一个或多个绘图对象方法调用修改的图形;如果仅使用pyplot函数进行图形修改,如果修改序列以pyplot函数结束,或者如果matplotlib处于非交互模式并且修改序列以show()或savefig()结束,则不需要该方法。

这似乎表明,在非交互模式下,在plt.show()之前使用plt.draw()将在绝大多数情况下是多余的。唯一需要它的时间是如果您正在做一些非常奇怪的修改而不涉及使用pyplot函数。

有关详细信息,请参阅Matplotlib文档中关于“交互模式”的内容。


1
非常感谢。好的,对于我的情况来说确实是多余的 :) - user2489252

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接