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

質問へのコメントとチャットでの議論に従って、次のようにして行を更新し、ループの反復ごとに延長します。元のコードの問題は、一度に 1 つのポイントしか描画されなかったため、明らかに画面に線が描画されなかったことです。numpy.append以下では、 (の一部)を使用して、ループの各反復で x および y データを拡張しますmatplotlib.pylab

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 に答える