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线程锁(thread)学习示例
Dec 04 Python
Python文件去除注释的方法
May 25 Python
python多线程方式执行多个bat代码
Jun 07 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
Python实现语音识别和语音合成功能
Sep 20 Python
python 模拟登陆163邮箱
Dec 15 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 Python
如何用Python和JS实现的Web SSH工具
Feb 23 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 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编程之高级技巧——利用Mysql函数
2006/10/09 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python聚类算法之基本K均值实例详解
2015/11/20 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python中的asyncio代码详解
2019/06/10 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
生产管理的三大手法
2013/11/11 职场文书
活动邀请函范文
2014/01/19 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
施工安全承诺书
2014/05/22 职场文书
督导岗位职责范本
2015/04/10 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL