python3.5绘制随机漫步图


Posted in Python onAugust 27, 2018

本文实例为大家分享了python3.5绘制随机漫步图的具体代码,供大家参考,具体内容如下

代码中我们定义两个模型,一个是RandomWalk.py模型,用于随机的选择前进方向。此模型中的RandomWalk类包含两个方法,一个是__init__(),一个是fill_walk(),后者是计算随机漫步的所有点。另外一个是rw_visual.py模型,用于绘制随机漫步图。

代码如下:

RandomWalk.py

from random import choice
 
class RandomWalk():
 """一个生成随机漫步数据的类"""
 
 def __init__(self,num_points=5000):
 """初始化随机漫步的属性"""
 self.num_points = num_points
 
 #所有随机漫步都始于(0,0)
 self.x_values = [0]
 self.y_values = [0]
 
 def fill_walk(self):
 """计算随机漫步包含的所有点"""
 
 #不断漫步,直到列表达到指定的长度
 while len(self.x_values) < self.num_points:
  # 决定前进方向以及沿这个方向前进的距离
  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 * x_distance
 
  # 拒绝原地踏步
  if x_step == 0 and y_step == 0:
  continue
 
  #计算下一个点的x和y值
  next_x = self.x_values[-1] + x_step
  next_y = self.y_values[-1] + y_step
 
  self.x_values.append(next_x)
  self.y_values.append(next_y)

rw_visual.py

import matplotlib.pyplot as plt 
 
from random_walk import RandomWalk
 
# 创建一个RandomWalk实例,并将其包含的点都绘制出来
rw = RandomWalk(50000)
rw.fill_walk()
 
# 设置绘图窗口的尺寸
plt.figure(dpi=80,figsize=(10,6))
 
# 设置点按先后顺序增加颜色深度
point_numbers = list(range(rw.num_points))
plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,
 edgecolor='none',s=1)
 
# 突出起点和终点,起点设置为绿色,终点设置为红色
plt.scatter(0,0,c='green',edgecolor='none',s=100)
plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolor='none',s=100)
 
# 隐藏坐标轴
plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)
 
plt.show()

效果如下:

python3.5绘制随机漫步图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Python八皇后问题解答过程详解
Jul 29 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
django从后台返回html代码的实例
Mar 11 Python
python matplotlib实现将图例放在图外
Apr 17 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
selenium自动化测试入门实战
Dec 21 Python
python基础之匿名函数详解
Apr 21 Python
Python反射和内置方法重写操作详解
Aug 27 #Python
Python使用matplotlib绘制随机漫步图
Aug 27 #Python
Python面向对象之继承和组合用法实例分析
Aug 27 #Python
Python干货:分享Python绘制六种可视化图表
Aug 27 #Python
python使用matplotlib库生成随机漫步图
Aug 27 #Python
Python面向对象之接口、抽象类与多态详解
Aug 27 #Python
python实现随机漫步算法
Aug 27 #Python
You might like
一个SQL管理员的web接口
2006/10/09 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
php常用图片处理类
2016/03/16 PHP
深入理解PHP中的count函数
2016/05/31 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
python使用mysql数据库示例代码
2017/05/21 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python的条件锁与事件共享详解
2019/09/12 Python
Python文件操作方法详解
2020/02/09 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
Python类成员继承重写的实现
2020/09/16 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
四种会话跟踪技术
2015/05/20 面试题
路政管理专业推荐信
2013/11/11 职场文书
金融专业个人求职信范文
2013/11/28 职场文书
资产经营总监岗位职责范文
2013/12/01 职场文书
党校学习思想汇报
2014/01/06 职场文书
食品安全演讲稿
2014/09/01 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android