流数据动态监控原型的内容概述

开发环境:Python3.6
代码行数:不到40行代码
代码风格:详细注解
代码特点:一定能跑起来
附加资料:带详细注释的九个animation实例

  • Decay
  • The Bayes update
  • The double pendulum problem
  • Animated histogram
  • Rain simulation
  • Animated 3D random walk
  • Animated line plot
  • Oscilloscope
  • MATPLOTLIB UNCHAINED

最后的效果:

这方面的资料网上很少,以下是网上三个较为相关的博客:

《使用Matplotlib实现实时数据流可视化(animation模块)》
原文:https://blog.csdn.net/weixin_43323092/article/details/82929556
该博主只介绍了常用函数的几个参数;给了一个官网的实例,这个实例没有注解;博主自己的实现没有给出完整代码,不能跑起来。

《可视化篇:流式数据监控(python)》
原文:https://blog.csdn.net/yc_1993/article/details/54933751
该博主提供了python 2.X的实现,并提供了一些流数据监控实现的思路,并对相关的函数做了一定的介绍。该博主给了两种相关的实现(代码注释不是很清楚,代码量有点大),而且两种实现没有给相应的数据集,不能顺利的跑起来。

《Matplotlib 画动态图: animation模块的使用》
原文:https://blog.csdn.net/u013180339/article/details/77002254
该博主只是简单的搬运了官网的四个例子,没有做详细的注释和分析。

本博主提供的资料特点:

  • 代码简洁且有详细注释
  • 附带官网示例(带注释)
  • 提供jupyter notebook使用教程,方便理解代码以及提高开发效率
  • 使用Python3.6实现
  • 工程一定能够运行起来,并且易于后期修改
  • 学完提供的jupyter notebook使用教程、官网示例、目标代码,相关技能将得到很大的提升

流数据动态监控原型源码

from numpy import sin, cos
import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate as integrate
import matplotlib.animation as animation
%matplotlib notebook#用来正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
#用来正常显示负号
plt.rcParams['axes.unicode_minus'] = Falsefig = plt.figure(figsize=(10, 4))
ax = fig.add_subplot(111, autoscale_on=False, xlim=(0, 40), ylim=(0, 40))
ax.set_aspect('auto')  # 控制长宽比
# ax.grid() # 是否要格子背景
ax.axhline(30, linestyle='--', color='black')
# 设置图片标题
ax.set_title('横坐标动态更新的animation实现')
# 设置横坐标名称
ax.set_xlabel('动态变化的横轴')
line, = ax.plot([], [], 'o-', lw=2)# 由于animation必须先有指定的数据或者指定的数据大小,但是我们的数据是一个一个显示的,初期是么有数据的
# 我们又必须提前填充指定个数的数据,这里我们填充x、y刻度以外的数据,然后想办法不显示
# 我们如何不显示呢?由于这些数据本质上还是要输出的,只是不让我们看见,数据既然要输出我们就要正确的设置这些数据对应的刻度
# 既然刻度不能做出改变,我们只能在刻度标签做手脚,我们让数据中x轴标签对应的刻度小于0时,标签显示空字符串
thisx = [i for i in range(-40, 0)]
thisy = (np.zeros(40, dtype=int) - 1).tolist()def init():line.set_data([], [])return linedef animate(*args):# 这种操作之前一定要确保len(thisy) = len(thisx)del thisx[0]del thisy[0]thisx.append(max(thisx) + 1)thisy.append(np.random.randint(0, 40, 1))# 设置x轴的范围ax.set_xlim(min(thisx), max(thisx))# 更新刻度,刻度只要早x轴的范围内就可以ax.set_xticks([i for i in range(min(thisx), max(thisx) + 1, 1)])# 设置刻度标签ax.set_xticklabels([i if i >= 0 else '' for i in range(min(thisx),max(thisx) + 1, 1)],rotation=320)# 重新渲染子图ax.figure.canvas.draw()line.set_data(thisx, thisy)return line# blit选择更新所有点,还是仅更新产生变化的点。应选择True
ani = animation.FuncAnimation(fig,animate,interval=600,blit=False,init_func=init)
# ani.save('jieky_animation.gif',writer='imagemagick')
plt.show()

感觉博主的帖子对你有帮助,记得点赞哦!!!


带详细注释的九个animation实例请加
QQ群:615578708

基于matplotlib.animation和python的流数据动态监控原型相关推荐

  1. android敏感api函数,基于敏感API调用的Android应用程序动态监控

    摘要: 近年来,Android操作系统凭借其开源的优势,占领了移动操作系统市场.Android通过对外提供API接口重组资源,吸引了大量第三方开发人员创造出功能丰富的Android应用.但是,由于An ...

  2. 基于Matplotlib和Seaborn以及Numpy的数据可视化基础案例练习一(含数据集)

    数据可视化基础案例练习一 概述 使用到的Python库 使用到的数据集 案例 1. 绘制 2000-2017 年各季度的国民生产总值散点图 2. 绘制 2000-2017 年第一产业.第二产业.第三产 ...

  3. MySQL数据库数据动态监控(canal+Kafka)

    参考资料: 参考文章https://gper.club/articles/7e7e7f7ff3g59gc6g6d canal官网 https://github.com/alibaba/canal

  4. python数据图表可视化GUI,python做可视化数据图表

    Python中数据可视化的两个库! 1. Matplotlib:是Python中众多数据可视化库的鼻祖,其设计风格与20世纪80年代的商业化程序语言MATLAB十分相似,具有很多强大且复杂的可视化功能 ...

  5. python 条形图_Python数据可视化:基于matplotlib绘制「堆积条形图」

    简介 堆积条形图作为条形图的一种,能够显示单个项目与整体之间的关系.不仅可以直观的看出每个系列的值,还能够反映出系列的总和,尤其是当需要看某一项目的总和以及其组成各系列值的比重时,最适合使用堆积条形图 ...

  6. python柱形图代码_Python数据可视化:基于matplotlib绘制「条形图」

    简介 条形图 (bar chart)是用宽度相同条形的高度或长短来表示数据多少的图形,可以横置或纵置.纵置时的条形图也称为 柱形图 (column chart). 绘制条形图 1 import mat ...

  7. python画条形图-Python数据可视化:基于matplotlib绘制「条形图」

    简介 条形图 (bar chart)是用宽度相同条形的高度或长短来表示数据多少的图形,可以横置或纵置.纵置时的条形图也称为 柱形图 (column chart). 绘制条形图 1 import mat ...

  8. Python Matplotlib绘制多子图准备训练数据和GIF动画实践

    我们程序员.设计人员,按需求辛辛苦苦开发出来的统计图形,往往达不到用户的要求,原因一般是表达不全面,也有内容过多而比较乱,真是众口难调. 其实,是我们表达方式与业务人员工作脱节.业务人员看了一张图或及 ...

  9. python matplotlib animation制作世界人口变动动画

    python matplotlib animation制作世界人口变动动画 主要利用animation 做了个世界人口动画,数据从网上下载的.做成json格式的.读入pandas.没有放数据, 只是弄 ...

最新文章

  1. Java技术分享:Lambda表达式之接口实例化
  2. 自定义线程池-线程类和任务类代码实现
  3. mysql select 查询选后5个_mysql 查询select语句汇总
  4. 关于高并发的一些笔记
  5. 数学歌单:数学虐我千百遍,让我至今没初恋
  6. 报错TypeError: $(...).live is not a function解决方法
  7. 网站推广中增加外链的八个技巧
  8. 如何能够做好主动沟通
  9. Windows Server 2019安装Intel I219-V I211网卡驱动
  10. 你都用 Python 来做什么?
  11. 动易2006CMSSP3+动网论坛 DVBBS 7.1 SP1+Oblog 3.13绿色整合版
  12. Cesium场景导出为图片功能
  13. 【Oracle】一条SQL的一生
  14. STM32F1单片机零基础学习(1)
  15. 我们所看到的迎宾机器人,真的好用吗?
  16. 浏览器ocx控件安装 WINDOW10 IE浏览器 可用
  17. 《我的前半生》读书笔记
  18. 校花美美(C语言代码解析)
  19. 商标注册申请的步骤是怎样的
  20. 中兴通讯三位元老级副总裁辞职 或与违规有关

热门文章

  1. Python爬虫:爬取华为应用市场app数据
  2. 论文写作——origin画图
  3. java中图片排版_Java实现第八届蓝桥杯图形排版
  4. Mixamo不仅是可商用的免费模型动画库,还是一个在线绑定蒙皮神器
  5. 关于大屏项目中分辨率和高宽比的总结
  6. 一个电脑可以装两个java么,是否可以在一台计算机上安装多个Eclipse?
  7. 学习这篇总结后,你也能做出天天快报一样的推荐系统
  8. 17 岁成为 iOS 越狱之父,25 岁造出无人车,黑客传奇!
  9. codeforces 1520E. Arranging The Sheep(1400)
  10. 灰度值为负?问题可能出在这里