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操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
python 调用HBase的简单实例
Dec 18 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
TensorFlow实现简单卷积神经网络
May 24 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
Python列表的切片实例讲解
Aug 20 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
pygame实现弹球游戏
Apr 14 Python
Python如何读取、写入JSON数据
Jul 28 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
什么是Python装饰器?如何定义和使用?
Apr 11 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
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
PHP中的string类型使用说明
2010/07/27 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
理解Python垃圾回收机制
2016/02/12 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
资料员岗位职责
2013/11/17 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python