1

私はしばらくの間、この質問に大きな挫折を抱えています...

import numpy as np
import matplotlib.pyplot as plt

plt.ion()
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.set_title("linear realtime")
line, = ax.plot([],[])

i = 0 
while ( i < 1000 ):
        #EDIT:
        # this is just sample data, but I would eventually like to set data 
        # where it can be floating numbers...
        line.set_data(i,i)             
        fig.canvas.draw()
        i += 1

リアルタイムで直線を引こうとしていますが、結果が出ません。前もって感謝します。これまでのところ、フィギュアが登場していますが、キャンバスには何も描かれていません。

編集:

興味深い....線上にドットをプロットできるようになりましたが、各ポイント間の接続を表示できなくなりました...プロット中にko-を削除すると...何も表示されないことにも気づきました。表示されます、誰かが理由を知っていますか?

import numpy as n
import pylab as p
import time

x=0
y=0 
p.ion()
fig=p.figure(1)
ax=fig.add_subplot(111)
ax.set_xlim(0,10)
ax.set_ylim(0,10)
line,=ax.plot(x,y,'ko-')
for i in range(10):
    x = i
    y = i
    line.set_data(x,y)
    p.draw()
4

1 に答える 1

2

p.pause(.001)ループにを追加します。GUIイベントループが表示をトリガーおよび更新するための時間を確保する必要があります。

これは、問題#1646に関連しています。

あなたが持っている他の問題は、あなたがそれをするとき、それはプロットされて渡されset_dataたデータを置き換え、すでにそこにあるデータに追加しないということです。(これを明確に表示するには、を使用します)を削除すると、デフォルトでは、単一のポイントをプロットしているポイントを結ぶ線でマーカーが表示されないため、何も表示されません。xyp.pause(1)'ko-'

私はあなたがこれを書くつもりだったと思います:

x=0
y=0 

fig=plt.figure(1)
ax=fig.add_subplot(111)
ax.set_xlim(0,10)
ax.set_ylim(0,10)
line,=ax.plot(x,y,'ko-')
for i in range(10):
    x = np.concatenate((line.get_xdata(),[i]))
    y = np.concatenate((line.get_ydata(),[i]))
    line.set_data(x,y)
    plt.pause(1)
于 2013-01-10T20:22:33.867 に答える