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 24 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
python数据归一化及三种方法详解
Aug 06 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
python高级特性简介
Aug 13 Python
python b站视频下载的五种版本
May 27 Python
python开发制作好看的时钟效果
May 02 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
php封装的page分页类完整实例
2016/10/18 PHP
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
浅谈js的异步执行
2016/10/18 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
Python中多线程的创建及基本调用方法
2016/07/08 Python
python中正则的使用指南
2016/12/04 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
NumPy排序的实现
2020/01/21 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
工业自动化毕业生自荐信范文
2014/01/04 职场文书
劳资协议书范本
2014/04/23 职场文书
2014年党小组工作总结
2014/12/20 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书