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

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.xdnf.cn/news/19026.html

相关文章:

  • AI 自动化编程 trae 体验3 开发小程序
  • (Nginx)基于Nginx+PHP 驱动 Web 应用(上):配置文件与虚拟主机篇
  • 网络编程(2)—多客户端交互
  • Uniapp + UView + FastAdmin 性格测试小程序方案
  • Qt类-扩充_xiaozuo
  • 龙巍:探究青铜器在木雕中的运用
  • 学习:uniapp全栈微信小程序vue3后台(6)
  • 【国内电子数据取证厂商龙信科技】ES 数据库重建
  • 【Flask】测试平台开发,产品管理实现添加功能-第五篇
  • DevOps
  • 沃尔玛AI系统Wally深度拆解:零售业库存周转提速18%,动态定价争议与员工转型成热议点
  • GitHub宕机自救指南
  • 2024年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 构建免费的音视频转文字工具:支持多语言的语音识别项目
  • 2025 DDC系统选型白皮书:构建高效低碳智慧楼宇的核心指南
  • MySQL 深分页:性能优化
  • SQL-Server分页查询多种方法讲解以及分页存储过程
  • Total PDF Converter多功能 PDF 批量转换工具,无水印 + 高效处理指南
  • 【Big Data】Alluxio 首个基于云的数据分析和开源AI数据编排技术
  • Zynq开发实践(FPGA之按键输入)
  • el-select多选下拉框出现了e611
  • 参数模板优化配置指南:从基础到进阶的完整解决方案
  • 学习游戏制作记录(音频的制作和使用)8.28
  • iOS开发之苹果系统包含的所有字体库
  • Node.js汉字转拼音指南:pinyin-pro全解析
  • R 语言 + 卒中 Meta 分析
  • 神经网络|(十六)概率论基础知识-伽马函数·中
  • vant Overlay 遮罩层内元素无法滚动解决方案
  • Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多模态数据融合与检测精度提升(405)
  • 手写链路追踪