Python实现随机漫步功能


Posted in Python onJuly 09, 2018

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

首先,创建一个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、生成效果图片

Python实现随机漫步功能

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实现随机漫步功能

总结

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

Python 相关文章推荐
Python获取电脑硬件信息及状态的实现方法
Aug 29 Python
wxPython学习之主框架实例
Sep 28 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
对python实现模板生成脚本的方法详解
Jan 30 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
flask应用部署到服务器的方法
Jul 12 Python
pandas的排序和排名的具体使用
Jul 31 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
Django中的AutoField字段使用
May 18 Python
python入门教程之基本算术运算符
Nov 13 Python
Python2包含中文报错的解决方法
Jul 09 #Python
对numpy数据写入文件的方法讲解
Jul 09 #Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 #Python
Tensorflow中的placeholder和feed_dict的使用
Jul 09 #Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 #Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 #Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 #Python
You might like
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
jQuery.each使用详解
2015/07/07 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
初步解析Python下的多进程编程
2015/04/28 Python
python对数组进行反转的方法
2015/05/20 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
python str字符串转uuid实例
2020/03/03 Python
django form和field具体方法和属性说明
2020/07/09 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
建筑系毕业生自我鉴定
2014/01/24 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
小学教师培训方案
2014/06/09 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
中班教师个人总结
2015/02/05 职场文书
公司财务经理岗位职责
2015/04/08 职场文书