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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
在Django的模板中使用认证数据的方法
Jul 23 Python
Python 中的with关键字使用详解
Sep 11 Python
使用Python来开发微信功能
Jun 13 Python
Python实现网站表单提交和模板
Jan 15 Python
selenium+python截图不成功的解决方法
Jan 30 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
python实现抠图给证件照换背景源码
Aug 20 Python
python定时任务 sched模块用法实例
Nov 04 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
php读取javascript设置的cookies的代码
2010/04/12 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
函授教育个人学习的自我评价
2013/12/31 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
学校评语大全
2014/05/06 职场文书
应届大专生自荐书
2014/06/16 职场文书
感恩教育月活动总结
2014/07/07 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
如何用python插入独创性声明
2021/03/31 Python
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL