数据分析——Python绘制实时的动态折线图
最近在做视觉应用开发,有个需求需要实时获取当前识别到的位姿点位是否有突变,从而确认是否是视觉算法的问题,发现Python的Matplotlib进行绘制比较方便。
目录
- 1.数据绘制
- 2.绘制实时的动态折线图
- 3.保存实时数据到CSV文件中
import matplotlib.pyplot as plt
import random
import numpy as np
import time
import os
import csv
1.数据绘制
def draw_data():index = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]x_data = [1, 0.2, 0.3, 4, 0.5, 0.6, 1, 0.8, 0.9, -1]# 创建折线图plt.plot(index, x_data, marker='o', color='b', linestyle='-', label='x_data')# 设置标题和标签plt.title("x_data")plt.xlabel("Index")plt.ylabel("X Data")# 显示图例plt.legend()# 设置横坐标刻度,使得每个index值都显示plt.xticks(index)# 显示图形plt.show()

2.绘制实时的动态折线图
虽然可以实时绘制,但会不断新增新的窗口,导致越到后面越卡顿,后面采用了保存到CSV文件进行分析的方法。
def realtime_data_draw():'''动态折线图实时绘制'''plt.ion()plt.figure(1)t_list = []result_list = []t = 0while True:if t >= 100 * np.pi:plt.clf()t = 0t_list.clear()result_list.clear()else:t += np.pi / 4t_list.append(t)result_list.append(np.sin(t))plt.plot(t_list, result_list, c='r', ls='-', marker='o', mec='b', mfc='w') ## 保存历史数据plt.plot(t, np.sin(t), 'o')plt.pause(0.1)

3.保存实时数据到CSV文件中
将实时的数据保存到CSV文件中,通过excel文件绘制折线图进行分析。
def realtime_data_save_csv():# 模拟实时生成的轨迹点坐标count = 0# CSV 文件路径file_path = 'vision_data/pose.csv'if os.path.exists(file_path):os.remove(file_path)# 写入表头并开始写入数据with open(file_path, mode='w', newline='') as file:writer = csv.writer(file)# 写入表头writer.writerow(['Index', 'X', 'Y', 'Z', 'RX', 'RY', 'RZ'])while True:count += 1x_value = random.uniform(-0.5, 0.5)y_value = random.uniform(-0.5, 0.5)z_value = random.uniform(-0.1, 0.8)rx_value = random.uniform(-3.14, 3.14)ry_value = random.uniform(-3.14, 3.14)rz_value = random.uniform(-3.14, 3.14)# 将生成的数据写入 CSV 文件writer.writerow([count, x_value, y_value, z_value, rx_value, ry_value, rz_value])time.sleep(0.05)



相关文章:
数据分析——Python绘制实时的动态折线图
最近在做视觉应用开发,有个需求需要实时获取当前识别到的位姿点位是否有突变,从而确认是否是视觉算法的问题,发现Python的Matplotlib进行绘制比较方便。 目录 1.数据绘制2.绘制实时的动态折线图3.保存实时数据到CSV文件中 import matplotlib.…...
【Redis】Redis的一些应用场景及使用策略
应用的场景 Redis 是一个高性能的内存数据库,广泛用于各种应用场景,以下是一些常见的应用场景: 缓存:Redis 的高读写性能使其非常适合作为缓存层,存储频繁访问的数据以减少数据库负载和加快响应时间。例如,…...
CentOS 8 安装 chronyd 服务
操作场景 目前原生 CentOS 8 不支持安装 ntp 服务,因此会发生时间不准的问题,需使用 chronyd 来调整时间服务。CentOS 8以及 TencentOS 3.1及以上版本的实例都使用 chronyd 服务实现时钟同步。本文介绍了如何在 CentOS 8 操作系统的腾讯云服务器上安装并…...
HarmonyOS ArkUI(基于ArkTS) 常用组件
一 Button 按钮 Button是按钮组件,通常用于响应用户的点击操作,可以加子组件 Button(我是button)Button(){Text(我是button)}type 按钮类型 Button有三种可选类型,分别为胶囊类型(Capsule)、圆形按钮(Circle…...
不用来回切换,一个界面管理多个微信
你是不是也有多个微信号需要管理? 是不是也觉得频繁切换账号很麻烦? 是不是也想提升多账号管理的效率? 在工作中,好的辅助工具,能让我们的效率加倍增长! 今天, 就给大家分享一个多微管理工具…...
MySQL系统优化
文章目录 MySQL系统优化第一章:引言第二章:MySQL服务架构优化1. 读写分离2. 水平分区与垂直分区3. 缓存策略 第三章:MySQL配置优化1. 内存分配优化Buffer Pool 的优化查询缓存与表缓存Key Buffer 2. 连接优化最大连接数会话超时连接池 3. 日志…...
若依笔记(八):芋道的Docker容器化部署
目录 增加环境变量 DockerFile与镜像制作 nginx配置 vue3前端工程 首先搞个ECS阿里主机,1核4g足够,最大程度保证是docker运行来减少主机资源占用,同时因为是公有云,端口策略安全很重要,每个对外服务的端口要通过安全组放开; mysql的docker使用8版本,启动时候给my.cn…...
前端隐藏元素的方式有哪些?HTML 和 CSS 中隐藏元素的多种方法
当面试官突然问你:“前端隐藏元素的方式有哪些?”你还是只知道 display: none 吗? 其实,在前端开发的世界里,隐藏元素的方法非常多。每种方法都有自己的小技巧和使用场景,了解它们不仅能让你应对自如&…...
sqli—labs靶场 5-8关 (每日4关练习)持续更新!!!
Less-5 上来先进行查看是否有注入点,判断闭合方式,查询数据列数,用union联合注入查看回显位,发现到这一步的时候,和前四道题不太一样了,竟然没有回显位??? 我们看一下源…...
【Java】异常处理实例解析
文章目录 Java异常处理实例解析Example01_2023yang:未处理的异常Example02_2023yang:捕获并处理异常Example03_2023yang:finally块的使用Example04_2023yang:自定义异常Example05_2023yang:忽略异常信息Example06_2023…...
flutter调试
上面的调试The following FormatException was thrown while handling a gesture: Invalid double -Infinity874When the exception was thrown, this was the stack: #0 double.parse (dart:core-patch/double_patch.dart:113:28) #1 _CalculatorScreenState._butt…...
使用Web Workers提升JavaScript的并行处理能力
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Web Workers提升JavaScript的并行处理能力 使用Web Workers提升JavaScript的并行处理能力 使用Web Workers提升JavaScript的…...
【含开题报告+文档+PPT+源码】基于Spring Boot智能综合交通出行管理平台的设计与实现
开题报告 随着城市规模的不断扩大和交通拥堵问题的日益严重,综合交通出行管理平台的研究与实现显得尤为重要。现代城市居民对于出行的需求越来越多样化,对于交通信息的获取和处理能力也提出了更高的要求。传统的交通管理方式已经难以满足这些需求&#…...
STM32寄存器结构体详解
一、寄存器结构体详解 对于STM32而言,使用一个结构体将一个外设的所有寄存器都放到一起 二、修改驱动 1、添加清除bss段代码 2、添加寄存器结构体 在寄存器结构体中添加寄存器的时候一定要注意地址的连续性,如果地址不连续的话,要添加占位…...
如何建立devops?
要建立DevOps系统,可以遵循以下步骤: 一、明确目标与确立原则 明确目标:确定DevOps系统的总体目标,例如提高软件发布频率、缩短反馈时间、提升软件质量等。确立原则:确立DevOps的核心原则,包括持续集成&a…...
shell基础(3)
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…...
2024年11月16日Github流行趋势
项目名称:opendatalab / MinerU 项目维护者:myhloli, dt-yy, Focusshang, drunkpig, papayalove等项目介绍:一站式开源高质量数据提取工具,支持PDF/网页/多格式电子书提取。项目star数:16,398项目fork数:1,…...
k8s更新
k8s更新 1.30 升级了 Metrics Server 到 v0.7.0 kubectl get cronjob命令增加了时区列显示 kubectl describe命令在描述VolumeAttributesClass、作业、Pod 模板等时提供了更多信息,有助于深入排查问题。 改进了kubectl logs命令,当 Pod 未找到时会显示所…...
ES6进阶知识一
目录 一、ES6构建工具与模块化 1.1.构建工具 1.1.1.Webpack 安装 Webpack 配置 Webpack 使用 Webpack 1.1.2.Babel 安装 Babel 配置 Babel 1.2.ES6模块化 1.命名导出导入 导出模块 导入模块 2. 默认导出与导入 导出模块 导入模块 1.3.完整案例展示 1. 项目结构…...
C#/WinForm拖拽文件上传
一、首先创建一个上传文件的类,继承Control类,如下: public class UploadControl : Control{private Image _image;public UploadControl(){this.SetStyle(ControlStyles.UserPaint | //控件自行绘制,而不使用操作系统的绘制Cont…...
DeepSeek-OCR-2惊艳效果展示:多栏/斜拍/模糊PDF精准识别对比图集
DeepSeek-OCR-2惊艳效果展示:多栏/斜拍/模糊PDF精准识别对比图集 1. 从机械扫描到智能理解:OCR技术的革命性突破 如果你曾经尝试过从PDF文档中提取文字,特别是那些排版复杂、图片模糊或者拍摄角度倾斜的文档,你一定会理解那种挫…...
OpenMP vs C++ 线程池:到底该用谁?
在 C 多线程并行编程中,OpenMP 和线程池是最常用的两种方案。很多开发者都会陷入困惑:同样是实现多线程加速,到底该选 OpenMP 还是 C 线程池?有人觉得 OpenMP 一行代码就能并行,简单高效;也有人偏爱线程池的…...
LYGIA颜色处理完全教程:28种混合模式与色彩空间转换实战
LYGIA颜色处理完全教程:28种混合模式与色彩空间转换实战 【免费下载链接】lygia LYGIA, its a granular and multi-language (GLSL, HLSL, WGSL, MSL and CUDA) shader library designed for performance and flexibility 项目地址: https://gitcode.com/gh_mirro…...
模拟面试回答第十三问:JVM内存模型
JVM简介 JVM是Java程序运行的基石,包括程序计数器,两种栈,堆和方法区五个区域。包含保存类元数据,保存方法字节码执行顺序,保存符号引用与直接地址的映射,为对象实例分配内存,为堆中内存分配对象…...
腾讯小龙虾使用指南
腾讯小龙虾使用指南腾讯小龙虾是一款集成了多种实用功能的工具,广泛应用于数据分析、自动化处理和团队协作等领域。以下指南将详细介绍其核心功能、操作方法和最佳实践。安装与配置下载腾讯小龙虾的安装包,支持Windows、Mac和Linux系统。运行安装程序后&…...
LabWindows/CVI报错
NON-FATAL RUN-TIME ERROR: "main.c", line 488, col 9, thread id 0x000057C4: Function GetCtrlVal: (return value -13 [0xfffffff3]). Invalid control ID 该怎么解决啊各位...
阿里开源神器CosyVoice2体验:用四川话、高兴语气说话,AI语音控制真简单
阿里开源神器CosyVoice2体验:用四川话、高兴语气说话,AI语音控制真简单 1. 快速体验:3秒克隆你的声音 1.1 一键部署指南 作为阿里云开源的轻量级语音克隆工具,CosyVoice2-0.5B的部署简单到令人惊讶。只需在服务器上执行以下命令…...
GLM-4-9B-Chat-1M惊艳效果:输入50万字小说,精准定位伏笔与人物关系图谱
GLM-4-9B-Chat-1M惊艳效果:输入50万字小说,精准定位伏笔与人物关系图谱 1. 百万长文处理新标杆 想象一下,你手头有一部50万字的网络小说,想要找出所有埋设的伏笔线索,理清复杂的人物关系网。传统方法可能需要花费数天…...
别再硬编码了!用CRMEB标准版的可视化定时任务,5分钟搞定自动发券
告别硬编码时代:CRMEB可视化定时任务实战指南 在电商系统开发中,定时任务就像一位不知疲倦的助手,默默处理着自动发券、订单状态更新、数据清理等重复性工作。但传统开发方式往往需要开发者手动编写Crontab配置或硬编码任务逻辑,不…...
终极指南:如何用Hammer.js为AR应用打造自然手势交互体验
终极指南:如何用Hammer.js为AR应用打造自然手势交互体验 【免费下载链接】hammer.js A javascript library for multi-touch gestures :// You can touch this 项目地址: https://gitcode.com/gh_mirrors/ha/hammer.js Hammer.js是一个强大的JavaScript库&am…...
