0

我正在尝试创建一个程序,它读取一些随机生成的数据,xax 和 yax 列表,当它以动画方式读取它们时,它们会实时显示。这是代码:

from matplotlib.pylab import *
import time, random

ion()
xax = []
yax = []

axes
for j in range (0,20):
    xax.append(j)
    r = random.randrange(0, 20)
    yax.append(r)
maxx = max(xax)
maxy = max(yax)
print maxx, maxy
axis([0,maxx,0,maxy])
line, = plot(xax[0],yax[0])
draw()
for i in xax:
    print i, yax[i]
    line.set_ydata(yax[i])
    draw()
4

1 回答 1

0

在对问题的评论和聊天中的讨论之后,尝试以下更新一行,为循环的每次迭代扩展它。原始代码中的问题是一次只绘制一个点,因此显然没有在屏幕上绘制线。numpy.append在下文中,我使用(part of matplotlib.pylab)在循环的每次迭代中扩展 x 和 y 数据。

from matplotlib.pylab import *
import time, random

ion()

xax = range(0, 20)
yax = [random.randrange(0, 20) for _ range(0, 20)]

axes()

xlim(xmax=max(xax))
ylim(ymax=max(yax))

line, = plot(xax[0], yax[0])

for i, x in enumerate(xax):
    line.set_ydata(append(line.get_ydata(), yax[i]))
    line.set_xdata(append(line.get_xdata(), x))
    draw()
    time.sleep(1.)
于 2012-08-03T13:00:33.747 回答