use*_*100 12 python matplotlib
matplotlib的情节和imshow的行为让我感到困惑.
import matplotlib as mpl
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)
如果我在调用plt.imshow(i)之前调用plt.show(),则会产生错误.如果我在调用plt.show()之前调用plt.imshow(i),那么一切都很完美.但是,如果我关闭第一个打开的数字,然后调用plt.imshow(i),则会显示一个新数字,而不会调用plt.show().
有人可以解释一下吗?
Joe*_*ton 22
如果我在调用plt.imshow(i)之前调用plt.show(),则会产生错误.如果我在调用plt.show()之前调用plt.imshow(i),那么一切都很完美.
plt.show()显示图形(并进入你正在使用的任何gui后端的主循环).在绘制完东西并想要看到它们之前,你不应该打电话给它.
plt.imshow()在当前图形上绘制图像(创建图形是没有当前图形).plt.show()在你画出任何东西之前打电话没有任何意义.如果您想要明确地创建一个新的数字,请使用plt.figure().
...显示一个新的数字,而不会调用plt.show().
除非你在类似于ipython的pylab模式下运行代码,否则这种情况不会发生,其中gui后端的mainloop将在一个单独的线程中运行...
一般来说,plt.show()将是脚本的最后一行.(或者无论何时你想停下来想象你制作的情节,都会被调用.)
希望这会更有意义.