2010-12-29 16 views
2

私はPythonを初めて使いました。pyODEチュートリアルに基づいてグラフをプロットしようとしています。hereです。私はプロットのためにpylabを使用しています。 以下はコードの主要部分です。#addedはグラフを表示して表示するために追加したコードです。値そのものを見ると、yvは変更され、x,z,u,w0.000のままです。プログラムを実行すると、軸のスケールはスケーリングを維持し、値に関して何かが起きていることを意味しますが、行は表示されません。私は間違って何をしていますか?Pythonのグラフをプロットする

おかげ

yplot = 0 #added 

#do the simulation 
total_time = 0.0 
dt = 0.04 
while total_time<2.0: 
    x,y,z = body.getPosition() 
    u,v,w = body.getLinearVel() 
    print "%1.2fsec: pos=(%6.3f,%6.3f,%6.3f) vel=(%6.3f,%6.3f,%6.3f)" % \ 
     (total_time, x,y,z,u,v,w) 
    world.step(dt) 
    total_time += dt  
    yplot += y #added 
    plot(total_time, yplot) #added 


xlabel('Time') #added 
ylabel('Height') #added 
show() #added 

答えて

2

トリックは、あなたが最初にプロットしたいすべての値を蓄積することで、その後一度だけplotを呼び出します。

yplot = 0 #added 

#do the simulation 
total_time = 0.0 
dt = 0.04 
times=[] 
yvals=[] 
while total_time<2.0: 
    x,y,z = body.getPosition() 
    u,v,w = body.getLinearVel() 
    print "%1.2fsec: pos=(%6.3f,%6.3f,%6.3f) vel=(%6.3f,%6.3f,%6.3f)" % \ 
     (total_time, x,y,z,u,v,w) 
    world.step(dt) 
    total_time += dt 
    yplot += y 
    times.append(total_time) 
    yvals.append(yplot) 
plot(times, yvals,'r-') 
xlabel('Time') #added 
ylabel('Height') #added 
show() #added 

'r-'をプロットするために3番目の引数は、timesyvalsに記載されている点を結ぶ赤い線を描画するpylabを伝えます。ポイントを1つずつプロットすると、各プロットには1つのポイントしか含まれていないため、pylabにドットを接続するよう指示する方法はありません。各点についてplotを呼び出すことも非常に非効率的です。

+0

ありがとう、それはそれを修正しました! – keyboardP

関連する問題