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 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
python发送邮件示例(支持中文邮件标题)
Feb 16 Python
在Python中使用SQLite的简单教程
Apr 29 Python
python实现获取Ip归属地等信息
Aug 27 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
python实现蒙特卡罗方法教程
Jan 28 Python
详解爬虫被封的问题
Apr 23 Python
Django框架实现的分页demo示例
May 25 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
Python Numpy库常见用法入门教程
Jan 16 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 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
phpmyadmin操作流程
2006/10/09 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
vue的webcamjs集成方式
2020/11/16 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
详解Python中的join()函数的用法
2015/04/07 Python
python删除列表内容
2015/08/04 Python
Python Pillow Image Invert
2019/01/22 Python
对Python _取log的几种方式小结
2019/07/25 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
Python实现分数序列求和
2020/02/25 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
TCP/IP的分层模型
2013/10/27 面试题
专科毕业生学习生活的自我评价
2013/10/26 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
Python中的datetime包与time包包和模块详情
2022/02/28 Python
PyTorch中permute的使用方法
2022/04/26 Python