使用matplotlib在循环中进行交互式绘图

时间:2013-04-16 22:04:19

标签: python matplotlib ipython

简单想要通过ipython使用matplotlib绘图,因为我的数据进来了。我使用-pylab选项打开ipython。在下面的代码中,time.sleep(1)只是一个占位符,用于我的实验收集数据所需的时间。代码成功清除以前绘制的数据,并使用新数据集更新图形。但是,当我尝试在屏幕上移动图形时,图形变得冻结,并且在代码运行时不会更新(在图的标题中显示“未响应”标题)。我想要数字移动性,因为最终会有多个图表跟踪实验的进度。我希望可以选择在它们之间切换,而不是一切都冻结。有什么建议?在Windows 7机器上运行python 2.6。

import numpy as np
import matplotlib.pyplot as plt
import time
plt.ion()
fig = plt.figure(1)
ax = fig.add_subplot(111)
for k in range(100):
    plt.cla()
    time.sleep(1)
    ax = fig.add_subplot(111)
    ax.semilogy(np.random.rand(100))
    fig.canvas.draw()
    plt.draw()

0 个答案:

没有答案