Python实现随机漫步功能

随机漫步生成是无规则的,是系统自行选择的结果。根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径。

首先,创建一个RandomWalk()类和fill_walk()函数

random_walk.py

from random import choice
class Randomwalk ():
  '''一个生成随机数漫步的类'''
  def __init__(self,num_point=5000):
    '''初始化随机漫步的属性'''
    self.num_point = num_point
    #所有随机漫步的开始都是坐标[0,0]
    self.x_lab = [0]
    self.y_lab = [0]
  def fill_walk(self):
    '''计算随机漫步的所有点'''
    while len(self.x_lab) < self.num_point:
      #决定前进方向以及前进的距离
      x_direction = choice([1,-1])
      x_distance = choice([0,1,2,3,4])
      x_step = x_direction * x_distance
      y_direction = choice([1,-1])
      y_distance = choice([0,1,2,3,4])
      y_step = y_direction * y_distance
      #拒绝原地不动
      if x_step == 0 and y_step == 0:
        continue
      #计算下一个点X和Y的值
      next_x = self.x_lab[-1] + x_step
      next_y = self.y_lab[-1] + y_step
      self.x_lab.append(next_x)
      self.y_lab.append(next_y)

2、绘制随机漫步图

rw_visual.py

import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
rw = Randomwalk()
rw.fill_walk()
plt.scatter(rw.x_lab,rw.y_lab,s=15)
plt.show()

3、生成效果图片

4、修改代码-->隐藏边框

rw_visual.py

import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
while True:
  rw = Randomwalk()
  rw.fill_walk()
  #设置绘画窗口大小
  plt.figure(dpi=128,figsize=(10,6))
  point_numbers = list(range(rw.num_point))
  #突出起点(0,0)和终点
  plt.scatter(0,0,c='green',edgecolors='none',s=100)
  plt.scatter(rw.x_lab[-1],rw.y_lab[-1],c='red',edgecolors='none',s=100)
  #隐藏坐标轴
  plt.axes().get_xaxis().set_visible(False)
  plt.axes().get_yaxis().set_visible(False)
  plt.scatter(rw.x_lab,rw.y_lab,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
  plt.show()
  keep_running = input("Make another walk?(y/n): ")
  keep_running = keep_running.lower()
  if keep_running == 'n':
    break

5、展示效果

总结

以上所述是小编给大家介绍的Python实现随机漫步功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Python3随机漫步生成数据并绘制

    本文为大家分享了Python3随机漫步生成数据并绘制的具体代码,供大家参考,具体内容如下 random_walk.py from random import choice #生成随机漫步的数据类 class RandomWalk(): def __init__(self,num_points=5000): #初始化随机漫步的属性 self.numpoints=num_points #随机漫步的默认点数 self.x_values=[0] #所有的随机漫步都始于(0.0) self.y_value

  • Python使用matplotlib绘制随机漫步图

    本文我们来做一个简单的随机漫步数据图,进一步了解matplotlib的使用, 使用Python生成随机漫步数据,再使用matplotlib绘制出来, 随机漫步是这样行走得到的路径: 每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的. 创建一个RandomWalk雷,随机的选择前进的方向,一共有三个属性,一个是存储随机漫步次数的变量,其他两个是列表,分别存储随机漫步经过的每个点的x和y坐标 下面是代码 from random import choice class Random

  • python散点图实例之随机漫步

    随机漫步是这样行走得到的途径:每次行走都是完全随机的,没有明确的方向,结果是由一系列随机决策决定的. random_walk.py #random_walk.py from random import choice # -*- coding: utf-8 -*- class RandomWalk(): #一个生成随机漫步数据的类 def __init__(self,num_points=5000): self.num_points=num_points self.x_values=[0] sel

  • python实现随机漫步方法和原理

    我们通过模拟随机漫步可以说明如何运用数组运算.通过内置的random模块以纯Python的方式实现1000步的随机漫步 根据前100个随机漫步值生成的折线图, plt.plot(walk[:100]) 随机漫步中各步的累计和,可以用一个数组运算来实现.因此,我用np.random模块一次性随机产生1000个"掷硬币"结果(即两个数中任选一个),将其分别设置为1或-1,然后计算累计和 我们就可以沿着漫步路径做一些统计工作了,比如求取最大值和最小值 假设我们想要知道本次随机漫步需要多久才能

  • python实现随机漫步算法

    本文实例为大家分享了python实现随机漫步的具体代码,供大家参考,具体内容如下 编写randomwalk类 from random import choice class randomwalk(): def __init__(self,num_points=5000): self.num_points=num_points self.x_values=[0] self.y_values=[0] def fill_walk(self): while len(self.x_values)<self

  • python使用matplotlib库生成随机漫步图

    本教程使用python来生成随机漫步数据,再使用matplotlib将数据呈现出来 开发环境 操作系统: Windows10 IDE: Pycharm 2017.1.3 Python版本: Python3.6 Python第三方库:matplotlib 开始实战 1. 创建RandomWalk()类 为了模拟随机漫步,我们将创建一个名为RandomWalk的类, 它随机地选择方向. from random import choice class RandomWalk(): ""&quo

  • python3.5绘制随机漫步图

    本文实例为大家分享了python3.5绘制随机漫步图的具体代码,供大家参考,具体内容如下 代码中我们定义两个模型,一个是RandomWalk.py模型,用于随机的选择前进方向.此模型中的RandomWalk类包含两个方法,一个是__init__(),一个是fill_walk(),后者是计算随机漫步的所有点.另外一个是rw_visual.py模型,用于绘制随机漫步图. 代码如下: RandomWalk.py from random import choice class RandomWalk():

  • Python实现随机漫步功能

    随机漫步生成是无规则的,是系统自行选择的结果.根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径. 首先,创建一个RandomWalk()类和fill_walk()函数 random_walk.py from random import choice class Randomwalk (): '''一个生成随机数漫步的类''' def __init__(self,num_point=5000): '''初始化随机漫步的属性''' self.num_point = num_point #

  • Python实现随机生成有效手机号码及身份证功能示例

    本文实例讲述了Python实现随机生成有效手机号码及身份证功能.分享给大家供大家参考,具体如下: 中国那么大,人那么多,几乎人手一部手机.手机号码已经作为各大互联网站的注册账户.同样,身份证更是如此.以下是生成有效手机号码和身份证号. 身份证需要下载districtcode.txt文件. 完整代码如下: import os import random import datetime BASE_DIR = os.path.dirname(os.path.dirname(__file__)) DC_

  • Python实现鼠标自动在屏幕上随机移动功能

    本来想控制鼠标自动移动防止公司电脑自动休眠的策略,然而,实现了并没什么卵用,还是会休眠.但还是分享出来吧.win10的系统. 首先要安装几个第三方的包:pymouse.pyhook.pywin32.pyuserinput.别看代码里值引用pymouse和win32api,如果不把这些都装了,运行时就会报错. 下面来看下代码吧. from pymouse import PyMouse from win32api import GetSystemMetrics import random impor

  • Python超详细分步解析随机漫步

    创建RandomWalk类 为模拟随机漫步,我们将创建一个RandomWalk类,随机选择前进方向,这个类有三个属性,一个存储随机漫步的次数,另外两个存储随机漫步的每个点的x,y坐标,每次漫步都从点(0,0)出发 from random import choice class RandomWalk(): '''一个生成随机漫步数据的类''' def __init__(self,num_points=5000): '''初始化随机漫步的属性''' self.num_points = num_poi

  • Python numpy之线性代数与随机漫步

    目录 线性代数 伪随机数生成 随即漫步 示例 线性代数 线性代数,矩阵计算,优化与内存:比如矩阵乘法,分解,行列式等数学知识,是所有数组类库的重要组成部分.和MATLAB等其他语言相比,numpy的线性代数中有所不同的是矩阵相乘不是点积运算而是逐个元素计算,因此在numpy里面都有一个特定的函数来计算,它就是dot, 语法如下: numpy之线性代数函数 diag 将一个方阵的对角(或非对角)元素作为一维数组返回,或者将一个一维数转换为一个方阵,并且在非对角线上有零点 dot 矩阵点乘 trac

随机推荐