matplotlib的情节和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()。
有人可以解释一下吗?
答案 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()将是你脚本的最后一行。 (或者,无论何时你想停止并想象你所制作的情节,都会被调用。)
希望这会更有意义。