用python绘制图形

2024-04-19 21:40:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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

Tags: 代码程序图形addedheretimedt绘制
1条回答
网友
1楼 · 发布于 2024-04-19 21:40:08

诀窍是先累积所有要绘制的值,然后只调用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

plot的第三个参数'r-'告诉pylab绘制一条红线,连接timesyvals中列出的点。每次绘制一个点时,无法告诉pylab连接这些点,因为每个绘图只包含一个点。为每个点调用plot也是非常低效的。在

相关问题 更多 >