python随机漫步_Python使用matplotlib绘制随机漫步图

这篇博客介绍如何使用Python生成随机漫步数据,并利用matplotlib进行可视化。通过创建RandomWalk类,模拟随机漫步过程,决定每次行走的方向和距离。最后展示如何绘制随机漫步图,使数据结果更加直观。
摘要由CSDN通过智能技术生成

随机漫步

在本节中,我们将使用Python生成随机漫步数据,再使用matplotlib以引入瞩目的方式将这些数据呈现出来。随机漫步是这样行走得到的路径:每次行走都完全随机的,没有明确的方向,结果是由一系列随机决策决定的。你可以这样认为,随机漫步就是蚂蚁在晕头转向的情况下,每次都沿随机的方向前行所经过的路径。

在自然界、物理学、生物学、化学和经济领域,随机漫步都有实际的用途。例如,漂浮在水滴上的花粉因不断收到水分子的挤压而在水面上移动。水滴中的分子运动是随机的,因此花粉在水面上的运动路径犹如随机漫步。我们稍后将编写的代码模拟了现实世界的很多情形。

创建RandomWalk( )类

为了模拟随机漫步,我们将创建一个名为RandomWalk( )的类,它随机地选择前进方向。这个类需要三个属性,其中一个是存储随机漫步次数的变量,其他两个是列表,分别存储随机漫步经过的每个点的x和y坐标。

RandomWalk( )类只包含两个方法:__init__( )和fill_walk( ),其中后者计算随机漫步经过的所有点。下面我们来看看__init__( ),如下所示:

为做出随机决策,我们将所有可能的选择都存储在一个列表中,并在每次做决策时都使用choice( )来决定使用哪种选择。接下来,我们将随机漫步包含的默认点数设置为5000,这大到足以生成有趣的模式,同时又足够小,可以确保能够快速地模拟随机漫步。然后,接下来,我们创建两个用于存储x值和y值的列表,并让每次随机漫步都从点(0,0)出发。

选择方向

我们将使用fill_walk( )来生成漫步包含的点,并决定每次漫步的方向,如下所示:

我们首先建立了一个循环,这个循环不断运行,直到漫步包含所需数量的点。这个方法的主要部分告诉Python如何模拟四种漫步决定:向右走还是向左走?沿指定方向走多远?向上走还是向下走?沿着指定方向走多远?

我们使用了choice([1, -1])给x_direction选择一个值,结果要么是表示向右走的1,要么是表示向左走的-1。接下来,choice([0, 1, 2, 3, 4])随机地选择一个0~4之间的整数,告诉Python沿指定方向走多远(x_distance)。

接着,我们将移动方向乘以移动距离,以确定沿x轴和y轴移动的距离。如果x_step为正,将向右移动,为负将向左移动,为0则垂直移动;同理对于y_step也是这样。但是如果当x_step和y_step都为0的时候,这意味着原地踏步,我们拒绝这种情况,因此,接着执行下一次循环。

为了获取漫步中下一个点的x值,我们将x_step与x_values中的最后一个值相加。对于y值也做相同的处理。获取下一个点的x值和y值之后,我们将他们分别附加到列表x_values和y_values的末尾。

绘制随机漫步图

下面的代码将随机漫步的所有点都绘制出来:

我们首先导入了模块pyplot和RandomWalk类。然后创建了一个RandomWalk实例,并将其存储到rw中,再调用fill_walk( )。我们将随机漫步包含的x和y值传递给scatter( ),并选择了合适的尺寸:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值