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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
python魔法方法-属性访问控制详解
Jul 25 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
Python标准库inspect的具体使用方法
Dec 06 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
python抓取京东小米8手机配置信息
Nov 13 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 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实现智能文件类型检测的实现代码
2011/08/02 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
在Python中使用模块的教程
2015/04/27 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
替换python字典中的key值方法
2018/07/06 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Python ORM编程基础示例
2020/02/02 Python
python实现拼接图片
2020/03/23 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
django使用graphql的实例
2020/09/02 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
美国羊皮公司:Overland
2018/01/15 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
检讨书模板
2015/01/29 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
期末个人总结范文
2015/02/13 职场文书
2015入党自传书范文
2015/06/26 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript