4

我正在尝试在 2d 中随机游走,并绘制 2d 游走。我已经能够走路了,但情节并不是我想要的。是否有可能在 python 中看到 walk ?或者只是为每个点添加一个标签,以便您知道哪个点先出现,哪个点出现第二个等?

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()

编辑我错误地复制了自己的代码,如果您安装了正确的软件包,现在正在编译。

4

3 回答 3

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()

样本结果:

在此处输入图像描述

于 2013-06-26T14:11:01.090 回答
3

我会使用颜色可视化时间信息,即尝试绘制

plt.plot(walk[0],walk[1],label= 'Random walk')
plt.scatter(walk[0],walk[1],s=50,c=range(26))
于 2013-06-26T14:12:20.287 回答
1

请参阅http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/上的动画教程

在这种情况下,动画功能应该执行您步行的一步并适当地设置 xy 数据。如果您不想保存动画或没有安装编解码器,请忽略 anim.save 调用。

于 2013-06-26T14:11:25.533 回答