在python解释器中运行以下代码会显示带有随机值的图形
>>>fig = plt.figure();ax1 = fig.add_subplot(111);plt.ion();ax1 = ax1.imshow(np.random.rand(256,256))
将以下脚本作为文件运行时不显示任何输出/数字。
import numpy as np
import matplotlib.pyplot as plt
import time
fig = plt.figure()
ax1 = fig.add_subplot(111)
plt.ion()
ax1 =ax1.imshow(np.random.rand(256,256))
行为不同的原因是什么?
答案 0 :(得分:0)
我怀疑发生了什么
matplotlib.rcParams['interactive'] == True
,这是在.matplotlibrc
文件中设置的。
这意味着plt.show
是非阻塞的(因此您可以获得一个可以与交互的数字,一个命令提示符,您可以在其中键入更多代码)。但是,在脚本的情况下,(隐式)plt.show
不会阻止,因此脚本会退出,并使用该数字。
我建议将interactive
rcparam设置为False
,然后在repl中将explitily设置为true,或者(首选方法)使用IPython
和%matplotlib
魔法。