Python使用matplotlib绘制随机漫步图


Posted in Python onAugust 27, 2018

本文我们来做一个简单的随机漫步数据图,进一步了解matplotlib的使用,

使用Python生成随机漫步数据,再使用matplotlib绘制出来,

随机漫步是这样行走得到的路径: 每次行走都完全是随机的,没有明确的方向,结果是由一系列随机决策决定的。
创建一个RandomWalk雷,随机的选择前进的方向,一共有三个属性,一个是存储随机漫步次数的变量,其他两个是列表,分别存储随机漫步经过的每个点的x和y坐标

下面是代码

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_distance * x_direction 
 
  y_direction = choice([-1, 1])
  y_distance = choice([0, 1, 2, 3, 4])
  y_step = y_distance * y_direction
 
  # 拒绝原地踏步
  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)
from random_walk import RandomWalk
 
# 不断的模拟随机漫步
while True:
 # 创建一个RandomWalk实例,将其包含的点绘制出来
 rw = RandomWalk()
 rw.fill_walk()
 
 
 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 = 5)
 
 # 突出起点和终点
 plt.scatter(0, 0, c='green', edgecolors = 'none', s = 100)
 plt.scatter(rw.x_values[1], rw.y_values[-1], c = 'red', edgecolors = 'none', s = 100)
 
 # 隐藏坐标轴
 # plt.axes().get_xaxis().set_visible(False)
 # plt.axes().get_yaxis().set_visible(False)
 
 plt.show()
 
 keep_running = input("Make another walk? (y/n): ")
 if keep_running.lower().startswith('n'):
 break

这是没有颜色渐变和绘制起始和结束点颜色和大小的图片

Python使用matplotlib绘制随机漫步图

这个是给出代码的运行情况,绿色为起始点,红色为终止点,越靠近终止点蓝色越深。

Python使用matplotlib绘制随机漫步图

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

Python 相关文章推荐
python实现清屏的方法
Apr 30 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python统计单词出现的次数
Apr 04 Python
Python3实现购物车功能
Apr 18 Python
numpy中矩阵合并的实例
Jun 15 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
python如何制作英文字典
Jun 25 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 Python
Python中super().__init__()测试以及理解
Dec 06 Python
Python面向对象之继承和组合用法实例分析
Aug 27 #Python
Python干货:分享Python绘制六种可视化图表
Aug 27 #Python
python使用matplotlib库生成随机漫步图
Aug 27 #Python
Python面向对象之接口、抽象类与多态详解
Aug 27 #Python
python实现随机漫步算法
Aug 27 #Python
Python3随机漫步生成数据并绘制
Aug 27 #Python
python如何生成各种随机分布图
Aug 27 #Python
You might like
在smarty中调用php内置函数的方法
2013/02/07 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
asm.js使用示例代码
2013/11/28 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
全面理解闭包机制
2016/07/11 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python模块常用四种安装方式
2020/10/20 Python
HTML5实现签到 功能
2018/10/09 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
管理信息系学生的自我评价
2014/01/11 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
银行求职信
2014/05/31 职场文书
留守儿童工作方案
2014/06/02 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
Golang 对es的操作实例
2022/04/20 Golang