随机漫步:每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的。可以认为是:蚂蚁在晕头转向的情况下,每次都沿随机的方向前行所经过的路径。
1.1 创建RandomWalk()类
1.2 选择方向
1.3 绘制随机漫步图
输出:
1.4 模拟多次随机漫步
1.5 给点着色
输出:
1.6 重新绘制起点和终点
输出:
1.7 隐藏坐标轴
输出:
1.8 增加点数
输出:
1.9 调整尺寸以适应屏幕
输出:
Python模拟随机游走图形效果示例本文实例讲述了Python模拟随机游走图形效果。分享给大家供大家参考,具体如下:
在python中,可以利用数组操作来模拟随机游走。
下面是一个单一的200步随机游走的例子,从0开始,步长为1和-1,且以相等的概率出现。纯Python方式实现,使用了内建的 random 模块:
# 随机游走importmatplotlib.pyplot as pltimportrandomposition=0walk=[position]steps=200foriinrange(steps): step=1ifrandom.randint(0,1)else-1 position+=step walk.append(position)fig=plt.figure()plt.title("www.jb51.net")ax=fig.add_subplot(111)ax.plot(walk)plt.show()
第二种方式:简单的把随机步长累积起来并且可以可以使用一个数组表达式来计算。因此,我用 np.random 模块去200次硬币翻转,设置它们为1和-1,并计算累计和:
# 随机游走importmatplotlib.pyplot as pltimportnumpy as npnsteps=200draws=np.random.randint(0,2, size=nsteps)steps=np.where(draws >0,1,-1)walk=steps.cumsum()fig=plt.figure()plt.title("www.jb51.net")ax=fig.add_subplot(111)ax.plot(walk)plt.show()
一次模拟多个随机游走
# 随机游走importmatplotlib.pyplot as pltimportnumpy as npnwalks=5nsteps=200draws=np.random.randint(0,2, size=(nwalks, nsteps))# 0 or 1steps=np.where(draws >0,1,-1)walks=steps.cumsum(1)fig=plt.figure()plt.title("www.jb51.net")ax=fig.add_subplot(111)foriinrange(nwalks): ax.plot(walks[i])plt.show()
当然,还可以大胆的试验其它的分布的步长,而不是相等大小的硬币翻转。你只需要使用一个不同的随机数生成函数,如 normal 来产生相同均值和标准偏差的正态分布:steps=np.random.normal(loc=0, scale=0.25, size=(nwalks, nsteps))