繁体   English   中英

matplotlib 绘图和 imshow

[英]matplotlib plot and imshow

matplotlib 的 plot 和 imshow 的行为让我感到困惑。

import matplotlib as mpl
import matplotlib.pyplot as plt

如果我在调用plt.imshow(i) plt.show()调用 plt.show() ,则会产生错误。 如果我在调用plt.imshow(i) plt.show()那么一切都会完美无缺。 但是,如果我关闭第一个打开的图形,然后调用plt.imshow(i) ,则会显示一个新图形,而无需调用plt.show()

有人可以解释一下吗?

如果我在调用 plt.imshow(i) 之前调用 plt.show(),则会产生错误。 如果我在调用 plt.show() 之前调用 plt.imshow(i),那么一切都会正常运行。

plt.show()显示图形(并进入您正在使用的任何 gui 后端的主循环)。 在您绘制事物并希望看到它们显示之前,您不应该调用它。

plt.imshow()在当前图形上绘制图像(如果没有当前图形则创建一个图形)。 在绘制任何内容之前调用plt.show()没有任何意义。 如果您想明确创建一个新图形,请使用plt.figure()

... 无需调用 plt.show() 即可显示新图形。

除非您以类似于 ipython 的 pylab 模式的方式运行代码,否则不会发生这种情况,其中 gui 后端的主循环将在单独的线程中运行......

一般来说, plt.show() 将是脚本的最后一行。 (无论如何,只要您想停止并可视化您所做的情节,就会被调用。)

希望这更有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM