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 相关文章推荐
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
Python扩展内置类型详解
Mar 26 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
python 返回列表中某个值的索引方法
Nov 07 Python
Python元组知识点总结
Feb 18 Python
python操作文件的参数整理
Jun 11 Python
在python里面运用多继承方法详解
Jul 01 Python
深入了解Python装饰器的高级用法
Aug 13 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
详解Python中的for循环
Apr 30 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
php5数字型字符串加解密代码
2008/04/24 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
PHP中文竖排转换实现方法
2015/10/23 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
小程序实现分类页
2019/07/12 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
对pandas写入读取h5文件的方法详解
2018/12/28 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
毕业生自我鉴定
2013/11/05 职场文书
综合实践活动总结
2014/05/05 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
经营场所证明范本
2015/06/19 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js