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学习笔记之常用函数及说明
May 23 Python
Python的Django框架中的select_related函数对QuerySet 查询的优化
Apr 01 Python
解析Python中的异常处理
Apr 28 Python
python分析网页上所有超链接的方法
May 08 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
Python any()函数的使用方法
Oct 28 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
django 模版关闭转义方式
May 14 Python
Python selenium模块实现定位过程解析
Jul 09 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
搜索引擎技术核心揭密
2006/10/09 PHP
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
JS 面向对象之神奇的prototype
2011/02/26 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
Python反射用法实例简析
2017/12/22 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
《最可爱的人》教学反思
2014/02/14 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript