我发现python / matplotlib的最新更新已经破坏了一个关键特性,即能够在代码执行期间定期更新或“刷新”matplotlib图。以下是最低(非)工作示例。
import numpy as np
from matplotlib.pyplot import *
from time import sleep
x = np.array([0])
y = np.array([0])
figure()
for i in range(51):
gca().cla()
plot(x,y)
xlim([0,50])
ylim([0,2500])
draw()
show(block = False)
x = np.append(x,[x[-1]+1])
y = np.append(y,[x[-1]**2])
sleep(0.01)
如果我使用Python 3.4.3和matplotlib 1.4.3运行该程序,我可以看到该图不断更新,并且曲线随着程序的运行而增长。但是,使用带有matplotlib 1.5.3的Python 3.5.1时,matplotlib窗口会打开,但不会显示该图。相反,它不断显示窗口“没有响应”,只在代码完成执行时显示最终的图。
我该怎么办?有没有办法使用最新版本实现我想要的功能?
注意:如果这会产生影响,我会从默认的IDLE环境运行它。
答案 0 :(得分:0)
这很有趣。我习惯于以不同的方式绘制交互式图:
import numpy as np
import matplotlib.pyplot as plt
from time import sleep
x = np.array([0])
y = np.array([0])
plt.ion()
fig = plt.figure()
ax=fig.add_subplot(111)
ax.set_xlim([0,50])
ax.set_ylim([0,2500])
line, = ax.plot(x,y)
plt.show()
for i in range(51):
x = np.append(x,[x[-1]+1])
y = np.append(y,[x[-1]**2])
line.set_data(x,y)
plt.draw()
sleep(0.01)
您(或任何人)可以检查这是否在Matplotlib 1.5中显示相同的问题?