matplotlib情节和imshow

时间:2010-08-16 21:36:37

标签: python matplotlib

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

import matplotlib as mpl
import matplotlib.pyplot as plt

如果在调用plt.imshow(i)之前调用plt.show(),则会产生错误。如果我在调用plt.show()之前调用plt.imshow(i),那么一切都很完美。但是,如果我关闭第一个打开的数字,然后调用plt.imshow(i),则会显示一个新数字,而不会调用pl​​t.show()。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:19)

  

如果我在调用之前调用plt.show()   plt.imshow(i),然后出现错误结果。   如果我之前打电话给plt.imshow(i)   调用plt.show(),然后一切   效果很好。

plt.show()显示图形(并进入你正在使用的任何gui后端的主循环)。在绘制完东西并想要看到它们之前,你不应该打电话给它。

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

  

......一个新的数字显示没有   调用plt.show()。

除非你在类似于ipython的pylab模式下运行代码,否则这种情况不会发生,其中gui后端的mainloop将在一个单独的线程中运行...

一般来说,plt.show()将是你脚本的最后一行。 (或者,无论何时你想停止并想象你所制作的情节,都会被调用。)

希望这会更有意义。