最小例子:
import matplotlib.pyplot as plt
import time
import numpy as np
plt.ion()
def plot(array):
plt.figure()
plt.plot(array)
plt.show()
for i in range(5):
plot(np.linspace(-10.*i, 10*i, num=101))
time.sleep(15)
这将创建5个绘图,然后等待15秒直到终止。将显示绘图窗口,但在这15秒内您可以看到绘图窗口的帧,但内容是透明的(您可以在下面看到其他窗口的内容;请参阅附图)。 这是在将matplotlib升级到2.0.0版之后发生的。
我希望在程序终止之前可以看到这些图,这是可能的(至少在spyder IDE的ipython控制台中)。我需要调整什么?
Screenshot of transparent plot windows
编辑:
Python 2.7.12
matplotlib 2.0.0
ipython:5.1.0
答案 0 :(得分:0)
如果您使用的是互动模式,则应使用plt.pause
代替time.sleep
。以下适用于我,
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
def plot(array):
plt.figure()
plt.plot(array)
plt.show()
for i in range(5):
plot(np.linspace(-10.*i, 10*i, num=101))
plt.pause(15)
通常使用交互式图表,如果您在开头指定图形和轴ax
,plt.show
它们并使用ax.plots
更新它{{1}每当您需要更新显示时,都会使用}和plt.draw
。例如,
plt.pause