matplotlib中plt.draw()和plt.show()的区别
我在想,为什么有些人在代码中会在 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.draw()
在 plt.show()
之前大多数情况下都是多余的。你可能只在进行一些非常特殊的修改时需要它,而这些修改不涉及使用 pyplot 函数。
想了解更多信息,可以参考 Matplotlib 的文档,"交互式图形"。