我是Python新手,我正在尝试根据pyODE教程中找到的here绘制一个图形。我用pylab
来绘制。
下面是代码的主要部分,#added
表示我为尝试显示图形而添加的代码。当观察这些值本身时,y
和{x,z,u,w
仍然是{
谢谢
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
诀窍是先累积所有要绘制的值,然后只调用
plot
一次。在plot的第三个参数
'r-'
告诉pylab
绘制一条红线,连接times
,yvals
中列出的点。每次绘制一个点时,无法告诉pylab
连接这些点,因为每个绘图只包含一个点。为每个点调用plot
也是非常低效的。在相关问题 更多 >
编程相关推荐