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 相关文章推荐
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
python如何实现excel数据添加到mongodb
Jul 30 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 Python
python利用lxml读写xml格式的文件
Aug 10 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
解决python3输入的坑——input()
Dec 05 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 Python
python unittest单元测试的步骤分析
Aug 02 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
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python lxml模块安装教程
2015/06/02 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
Python匹配中文的正则表达式
2016/05/11 Python
python基于phantomjs实现导入图片
2016/05/13 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
Python with语句和过程抽取思想
2019/12/23 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
护理专业毕业生自荐信
2014/06/15 职场文书
就业协议书
2014/09/12 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
党员转正大会主持词
2015/07/02 职场文书
2016年少先队活动总结
2016/04/06 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏