诀窍是首先累积要绘制的所有值,然后调用plot
once.
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-'
, tells pylab
绘制一条连接列出的点的红线times
,yvals
。当你一次绘制一个点时,就无法分辨pylab
连接点,因为每个图仅包含一个点。呼唤plot
对于每个点来说也是非常低效的。