2010-12-29 7 views
2

python 튜토리얼을 기반으로 그래프를 그리려고 시도하고있는 Python을 처음 사용했습니다. here입니다. 플롯팅에 pylab을 사용하고 있습니다. 다음은 코드의 주요 부분이며 #added은 그래프를 표시하고 표시하기 위해 추가 한 코드입니다. 값 자체를 볼 때 yv은 변경되며 x,z,u,w0.000으로 남습니다. 프로그램을 실행할 때, 축척은 축척을 유지하면서 값에 관해 어떤 일이 일어나고 있음을 암시하지만 아무런 선도 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?파이썬에서 그래프 그리기

감사

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-'을 플롯하는 세 번째 인수는 times, yvals에 나와있는 점을 연결하는 레드 라인을 그릴 pylab을 알려줍니다. 한 점씩 점을 그릴 때 pylab에 각 점에 단일 점만 있기 때문에 점을 연결하도록 알릴 방법이 없습니다. 각 포인트에 대해 plot을 호출하는 것은 또한 매우 비효율적입니다.

+0

고마워요. 고쳐졌습니다! – keyboardP

관련 문제