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

49 投票
1 回答
85251 浏览
提问于 2025-04-18 03:10

我在想,为什么有些人在代码中会在 plt.show() 之前加上 plt.draw()。对我来说,使用 plt.draw() 并没有改变输出的结果。我在网上搜索了一下,但没有找到有用的信息。

(假设我们是这样导入的 pyplotfrom matplotlib import pyplot as plt

1 个回答

59

plt.show() 是用来显示你正在处理的图形的命令。

plt.draw() 则是用来重新绘制图形的。这在你使用交互模式时特别有用,如果你修改了数据或图形的格式,这个命令可以让图形随之更新。

关于 plt.draw 的文档中提到:

这个命令在交互模式下使用,用于更新已经通过一个或多个绘图对象方法修改过的图形;如果图形的修改完全是通过 pyplot 函数完成的,或者一系列修改以 pyplot 函数结束,或者 matplotlib 处于非交互模式并且修改以 show()savefig() 结束,那么就不需要这个命令。

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

想了解更多信息,可以参考 Matplotlib 的文档,"交互式图形"。

撰写回答