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的struct模块中进行数据格式转换的方法
Jun 17 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
Python实现注册、登录小程序功能
Sep 21 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
python实现简单俄罗斯方块
Mar 13 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
Django跨域请求原理及实现代码
Nov 14 Python
Python读取文件夹下的所有文件实例代码
Apr 02 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 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 Mssql操作简单封装支持存储过程
2009/12/11 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
基于jQuery试卷自动排版系统
2010/07/18 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
2017/03/23 jQuery
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
在Python中使用元类的教程
2015/04/28 Python
tensorboard显示空白的解决
2020/02/15 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
结婚周年感言
2014/02/24 职场文书
2014年三八妇女节活动总结
2014/03/01 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
学校食品安全责任书
2015/01/29 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL