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

时间:2014-04-17 19:06:11

标签: python matplotlib

我想知道为什么有些人会在plt.draw()之前将plt.show()放入他们的代码中。对于我的代码,plt.draw()的行为似乎没有改变输出的任何内容。我在网上搜索过,但找不到任何有用的东西。

(假设我们将pyplot导入为from matplotlib import pyplot as plt

1 个答案:

答案 0 :(得分:36)

plt.show()将显示您正在处理的当前数字。

plt.draw()将重新绘制该数字。这允许您以交互模式工作,如果您更改了数据或格式,请允许图表本身更改。

plt.draw文档状态:

  

这在交互模式下用于更新使用一个或多个绘图对象方法调用更改的图形;如果修改序列完全使用pyplot函数完成,如果修改序列以pyplot函数结束,或者matplotlib处于非交互模式且修改序列以show()或savefig()结束,则不需要它。 / p>

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

有关详细信息,请参阅Matplotlib常见问题解答“What is interactive mode?”。