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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
Python实现CNN的多通道输入实例
Jan 17 Python
Python *args和**kwargs用法实例解析
Mar 02 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 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
PHP面向对象精要总结
2014/11/07 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
Python中的下划线详解
2015/06/24 Python
判断网页编码的方法python版
2016/08/12 Python
python ansible服务及剧本编写
2017/12/29 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
python nmap实现端口扫描器教程
2020/05/28 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
工业自动化专业自荐信范文
2014/04/10 职场文书
节能标语大全
2014/06/21 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
Python基础之元类详解
2021/04/29 Python