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遍历类中所有成员的方法
Mar 18 Python
Python读取图片属性信息的实现方法
Sep 11 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
May 24 Python
Python unittest单元测试框架总结
Sep 08 Python
Python3.6.2调用ffmpeg的方法
Jan 10 Python
Python3中的bytes和str类型详解
May 02 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
Python对象的属性访问过程详解
Mar 05 Python
Python Tornado之跨域请求与Options请求方式
Mar 28 Python
Python图像识别+KNN求解数独的实现
Nov 13 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
php实现微信发红包功能
2018/07/13 PHP
json简单介绍
2008/06/10 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
nodejs基础知识
2017/02/03 NodeJs
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
React Native时间转换格式工具类分享
2017/10/24 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
python实现比较两段文本不同之处的方法
2015/05/30 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
python实现超市扫码仪计费
2018/05/30 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
thinkphp5 路由分发原理
2021/03/18 PHP
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
勤俭节约主题班会
2015/08/13 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
SQL SERVER存储过程用法详解
2022/02/24 SQL Server
python中数组和列表的简单实例
2022/03/25 Python