【发布时间】:2016-10-03 14:54:40
【问题描述】:
我发现 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 运行这个程序,我可以看到绘图不断更新,并且曲线随着程序运行而增长。但是,使用 Python 3.5.1 和 matplotlib 1.5.3,matplotlib 窗口打开但不显示绘图。相反,它不断显示窗口“没有响应”,并且仅在代码执行完成时才显示最终的绘图。
对此我能做些什么?有什么方法可以使用最新版本实现我想要的功能?
注意:如果有什么不同,我会在默认的 IDLE 环境中运行它。
【问题讨论】:
-
您是否在导入之间尝试过这条线:
% matplotlib inline? -
@estebanpdl 在我看来,该命令旨在用于 ipython 以强制绘图出现在命令窗口内。我认为这不是我想要的。
标签: python matplotlib plot