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爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
【python】matplotlib动态显示详解
Apr 11 Python
详解python中递归函数
Apr 16 Python
基于python二叉树的构造和打印例子
Aug 09 Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 Python
python创建n行m列数组示例
Dec 02 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
python re的findall和finditer的区别详解
Nov 15 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中curl和file_get_content的区别
2014/05/10 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
JS日历 推荐
2006/12/03 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
2011/04/06 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
python实现音乐下载器
2018/04/15 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
python实现多人聊天室
2020/03/31 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python仿抖音表白神器
2019/04/08 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
Flask处理Web表单的实现方法
2021/01/31 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
幼儿园中班下学期评语
2014/04/18 职场文书
2014年党务公开方案
2014/05/08 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
2016党校培训心得体会
2016/01/07 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
扩展多台相同的Web服务器
2021/04/01 Servers
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers