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中生成器和yield语句的用法详解
Apr 17 Python
浅析使用Python操作文件
Jul 31 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
Mar 18 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 Python
python如何写出表白程序
Jun 01 Python
Python configparser模块封装及构造配置文件
Aug 07 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 n个不重复的随机数生成代码
2009/06/23 PHP
php将数据库导出成excel的方法
2010/05/07 PHP
php防止sql注入代码实例
2013/12/18 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
PHP常用处理静态操作类
2015/04/03 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
jQuery实现隔行背景色变色
2014/11/24 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
英国精品买手店:Browns Fashion
2016/09/29 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
财务经理的岗位职责
2013/12/17 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
Python turtle编写简单的球类小游戏
2022/03/31 Python
Python如何加载模型并查看网络
2022/07/15 Python
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL