当前位置: 首页 > news >正文

PlotJuggler如何安装和使用

官网和Github地址

https://plotjuggler.io/

https://github.com/facontidavide/PlotJuggler

简介

plotJuggler是一个数据可视化神器,支持离线,在线(ROS/MQTT/ZMQ/WebSocket)的数据源。并且可以记录实时的数据,以及将当前的数据作为ROS2的Topic再RePublic出去。也可以使用Lua语言处理接受到的数据,达到二次分析的效果。

image

如何安装

# 在Ubuntu2004上
sudo snap install plotjuggler-ros# 在Ubuntu2204上
sudo snap install plotjuggler

使用介绍

File栏:
进行离线数据的导入,以及布局文件的导入和导出

Streaming栏:
实时数据输入流的设置

Publishers栏:
导出数据或用ROS2话题将当前的数据再发布出去

Timeseries List栏:
数据源中的所有数据项

图形窗口说明

Plot窗口

Plot窗口工具栏

横轴纵轴全部缩放

image

图例位置,可以再右上角,左上角或者隐藏

x轴时间类型,可以切换为年月日类型

plot窗口背景是否有网格

当有多个视图的时候,对其中一个视图进行缩放的时候,其他视图会同步进行缩放

将当前的第一个数据时间记作时间0

image

配合代码如何使用

Python代码

# pip install pyzmq
import zmq
import time
import math
import jsoncontext = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5556")x = 0.0
while True:y = math.sin(x)data = {"x": round(x, 4),"y": round(y, 4),"timestamp": time.time()}json_msg = json.dumps(data)socket.send_string(json_msg)print("Sent:", json_msg)x += 0.1time.sleep(0.1)

C++代码

# 使用前需要安装
sudo apt install nlohmann-json-dev# 在https://github.com/zeromq/cppzmq 下载zmq.hpp至当前工程的include文件夹中
#include <zmq.hpp>
#include <nlohmann/json.hpp>
#include <iostream>
#include <cmath>
#include <chrono>
#include <thread>int main() {zmq::context_t context(1);zmq::socket_t publisher(context, zmq::socket_type::pub);publisher.bind("tcp://*:5555");double x = 0.0;while (true) {double y = std::sin(x);double timestamp = std::chrono::duration<double>(std::chrono::system_clock::now().time_since_epoch()).count();nlohmann::json j;j["x"] = x;j["y"] = y;j["timestamp"] = timestamp;std::string msg = j.dump();zmq::message_t message(msg.begin(), msg.end());publisher.send(message, zmq::send_flags::none);std::cout << "Sent: " << msg << std::endl;x += 0.1;std::this_thread::sleep_for(std::chrono::milliseconds(100));}return 0;
}
# 编译
g++ src/01.cpp -o pub -lzmq -Iinclude

plotjuggler设置

image

左侧出现对应的数据,将对应的数据拖入右侧界面,即可看到对应的数据图形

image

如何给Plot窗口添加标题

双击红色区域,输入名称即可

如何限制Y轴最大值和最小值

再指定的窗口中右键,edit curves,还可以修改曲线颜色,以及删除图形窗口的数据(一个窗口是可以有多个数据的)

image

如何进行分栏

当我们将鼠标放置标题栏的时候,会出现分栏按钮,点击进行分栏即可。对应经常使用的布局,也可以将布局保存起来进行复用。

image

http://www.dtcms.com/a/356164.html

相关文章:

  • JavaSE丨集合框架入门(二):从 0 掌握 Set 集合
  • DeepSeek大模型风靡云平台,百度智能云、阿里云、腾讯云等多个平台宣布上线DeepSeek模型
  • HGDB全文检索/中文分词的使用
  • 美食推荐|美食推荐小程序|基于微信小程序的美食推荐系统设计与实现(源码+数据库+文档)
  • 【项目思维】通过编写一个贪吃蛇小程序,并移植到嵌入式设备上,解析编程思维的本质
  • mysql中的通用语法及分类
  • Ubuntu下配置并远程连接MySQL
  • 平安养老险深分开展“金融护航,安居鹏城”新市民金融服务宣传活动
  • Unity+URP+WebGL抗锯齿设置
  • MTK Linux DRM分析(二十二)- MTK mtk_drm_crtc.c(Part1)
  • PDF,HTML,md格式文件在线查看工具
  • CosyVoice win10启用记
  • 【mysql】SQL 中 IS 与 = 的区别:一个 NULL 值引发的思考
  • 编译esp32报错解决办法
  • 光谱相机多层镀膜技术如何提高透过率
  • [新启航]白光干涉仪在太阳能电池片栅线高度 3D 轮廓测量中的应用解析
  • 【C语言】递归
  • 屏随人动+视觉魔方+多样主题+智能留言,涂鸦Wukong AI 2.0助力打造爆款带屏云台相机
  • 从0开始学习Java+AI知识点总结-28.Linux部署
  • PDF 24 Tools, PDF编辑工具, PDF压缩, PDF转换, PDF删除, PDF加密, 添加水印
  • 创业灵感第一集
  • OpsManage:基于Django的企业级AWS云资源运维管理平台
  • 《零基础入门AI:YOLOv2算法解析》
  • Vue开发准备
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(四)
  • OpenHarmony设备使用统计深度实战:从数据埋点到信息采集的全链路方案
  • 使用 Bright Data Web Scraper API + Python 高效抓取 Glassdoor 数据:从配置到结构化输出全流程实战
  • C++ 8.28
  • Dify学习
  • Python 正则表达式完全指南:从基础语法到实战案例