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实现DES加密解密方法实例详解
Jun 30 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
Django中间件实现拦截器的方法
Jun 01 Python
Python弹出输入框并获取输入值的实例
Jun 18 Python
python实现局域网内实时通信代码
Dec 22 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
解决flask接口返回的内容中文乱码的问题
Apr 03 Python
python GUI模拟实现计算器
Jun 22 Python
python实现磁盘日志清理的示例
Nov 05 Python
python中time、datetime模块的使用
Dec 14 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
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
javascript 树控件 比较好用
2009/06/11 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
python实现apahce网站日志分析示例
2014/04/02 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
python print出共轭复数的方法详解
2019/06/25 Python
简单了解python元组tuple相关原理
2019/12/02 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
法制宣传实施方案
2014/03/13 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
采购内勤岗位职责
2015/04/13 职场文书
《1942》观后感
2015/06/08 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
Ajax实现三级联动效果
2021/10/05 Javascript
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers