我正试图在2d做一个随机游走,并绘制2d步行。 我已经能够走路,但情节并不完全是我想要的。 是否有可能看到在python中的现场直播?或者只是为每个点添加一个标签,以便您知道哪个点首先出现,哪个点出现在第二个等等?
import numpy as np
import matplotlib.pyplot as plt
import random
def randomWalkb(length):
steps = []
x,y = 0,0
walkx,walky = [x],[y]
for i in range(length):
new = random.randint(1,4)
if new == 1:
x += 1
elif new == 2:
y += 1
elif new ==3 :
x += -1
else :
y += -1
walkx.append(x)
walky.append(y)
return [walkx,walky]
walk = randomWalkb(25)
print walk
plt.plot(walk[0],walk[1],'b+', label= 'Random walk')
plt.axis([-10,10,-10,10])
plt.show()
编辑我错误地复制了自己的代码,现在正在编译,如果你安装了正确的软件包。
答案 0 :(得分:6)
内置的turtle
模块可用于以可感知的速度绘制路径。
import turtle
turtle.speed('slowest')
walk = randomWalkb(25)
for x, y in zip(*walk):
#multiply by 10, since 1 pixel differences are hard to see
turtle.goto(x*10,y*10)
turtle.exitonclick()
示例结果:
答案 1 :(得分:3)
我会使用颜色可视化时间信息,即尝试绘制
plt.plot(walk[0],walk[1],label= 'Random walk')
plt.scatter(walk[0],walk[1],s=50,c=range(26))
答案 2 :(得分:1)
请参阅http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/
上的动画教程在这种情况下,animate函数应该执行步骤的一个步骤并适当地设置x-y数据。如果您不关心保存动画或没有安装编解码器,请忽略anim.save调用。