Python matplotlib plot和imshow

Python matplotlib plot和imshow,python,matplotlib,Python,Matplotlib,matplotlib的plot和imshow的行为让我感到困惑 import matplotlib as mpl import matplotlib.pyplot as plt 如果在调用plt.imshow(I)之前调用plt.show(),则会产生错误。如果我在调用plt.show()之前调用plt.imshow(I),那么一切都会正常工作。但是,如果我关闭打开的第一个图形,然后调用plt.imshow(I),则会显示一个新图形,而不会调用plt.show() 有人能解释一下吗 如果在调用

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

import matplotlib as mpl
import matplotlib.pyplot as plt
如果在调用
plt.imshow(I)
之前调用
plt.show()
,则会产生错误。如果我在调用
plt.show()
之前调用
plt.imshow(I)
,那么一切都会正常工作。但是,如果我关闭打开的第一个图形,然后调用
plt.imshow(I)
,则会显示一个新图形,而不会调用
plt.show()

有人能解释一下吗

如果在调用之前调用plt.show() plt.imshow(i),则会产生错误结果。 如果我在之前致电plt.imshow(I) 调用plt.show(),然后 工作完美

plt.show()。你不应该调用它,直到你已经绘制了东西,并希望看到它们显示出来

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

。。。将显示一个新图形,而不显示任何图形 正在调用plt.show()

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

一般来说,plt.show()将是脚本的最后一行。(或者,无论何时,只要您想停止并可视化所绘制的绘图,都会被调用。)


希望这会更有意义。

如果要显示一系列图像,请短暂暂停以在屏幕上显示每个图像,然后转到下一个图像,该怎么办?您必须在某个时候调用show(),但如果调用,则无法执行其余代码来显示下一个图像。只需启动一个新的地物plt.figure(),或关闭前一个地物plt.close()。