[英]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.