0

次のコードを使用して、ポイントを繰り返しグラフに追加しようとしています。私は OSX を使用しているため、blit=True は使用していません。元の点を 1 点取得してプロットし、(ジェネレーターから供給された) 更新関数からの出力を確認できます。また、座標がプロットされる座標の配列に追加されていることもわかります。生成/更新されたポイントを視覚化する際に何が欠けていますか?

data_gen() によって呼び出される stromboli 関数は、座標のペアを返します。すべての意図と目的のために、ランダムな x、y である可能性があります。

#Visualization Imports
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update(coord):
    print coord[0], coord[1]
    pt.set_xdata(numpy.append(pt.get_xdata(),coord[0]))
    pt.set_ydata(numpy.append(pt.get_ydata(),coord[1]))
    print pt.get_xdata()
    return pt,

def data_gen():
   while True:
        yield stromboli(args.velocity)

#Visualization
fig = plt.figure()
ax = plt.axes()
pt, = ax.plot([], [],'ro')

ani = animation.FuncAnimation(fig, update, data_gen, interval=100)

plt.plot(0,0,'b*')
plt.show()
4

1 に答える 1

1

pt以前のコード実行から定義される効果的なクロージャー (これをインタラクティブな環境で実行していますか?) で何かおかしくなっているのではないかと思います。これは、実行時に取得されるものdef updateです。次に and の新しいバージョンを作成しますptが、それはによって更新されるものではありませんupdate

の定義のpt, = ax.plot([],[],'ro') に移動するか、引数として update渡してみてください。pt

元:

def update(coord,pt):
    print coord[0], coord[1]
    pt.set_xdata(numpy.append(pt.get_xdata(),coord[0]))
    pt.set_ydata(numpy.append(pt.get_ydata(),coord[1]))
    print pt.get_xdata()
    return pt,

....

ani = animation.FuncAnimation(fig, update, data_gen, fargs = (pt,),interval=100)
于 2012-10-24T02:11:25.110 に答える