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 18 Python
浅谈Python 对象内存占用
Jul 15 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
python从PDF中提取数据的示例
Oct 30 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
python实现dict版图遍历示例
2014/02/19 Python
深入理解python中的select模块
2017/04/23 Python
python中import reload __import__的区别详解
2017/10/16 Python
python实现淘宝秒杀脚本
2020/06/23 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
Android面试题及答案
2015/09/04 面试题
大学迎新晚会主持词
2014/03/24 职场文书
工程售后服务承诺书
2014/05/21 职场文书
出售房屋委托书范本
2014/09/24 职场文书
院系推荐意见
2015/06/05 职场文书
2016猴年春节问候语
2015/11/11 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技
virtualenv隔离Python环境的问题解析
2022/06/21 Python
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers