我正在运行一个Python脚本,每隔几秒就会在matplotlib中更新一个绘图。计算需要几分钟,我希望能够在更新时以通常的方式平移和缩放绘图。这可能吗?
如果失败,是否可以中断脚本(取消剩下的计算)然后平移/缩放图?
我做了以下例子。该图更新非常好,但您无法使用平移/缩放工具。
import numpy as np
import matplotlib.pyplot as plt
import time
def time_consuming_calculation():
time.sleep(0.001)
return np.random.normal()
ax = plt.subplot(111)
plt.ion()
plt.show(block=False)
bins = np.linspace(-4,4,100)
data = []
for i in range(0,10000):
print 'Iteration % 4i'%i
data.append(time_consuming_calculation())
if i%1000==0:
n,bin_edges = np.histogram(data,bins=bins)
if i == 0:
line, = plt.plot(bin_edges[:-1],n)
else:
line.set_data(bin_edges[:-1],n)
ax.relim() # Would need to disable this if we can use pan/zoom tool
ax.autoscale()
plt.draw()
plt.ioff()
plt.show()