# plotjuggler/plotjuggler

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/plotjuggler-plotjuggler).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

6,297 stars · 836 forks · C++ · MPL-2.0

## Links

- GitHub: https://github.com/PlotJuggler/PlotJuggler
- Homepage: https://www.plotjuggler.io
- awesome-repositories: https://awesome-repositories.com/repository/plotjuggler-plotjuggler.md

## Topics

`chart` `csv` `labstreaminglayer` `lua` `mqtt` `plot` `px4` `qt5` `ros` `rosbag` `time-series` `ulog` `visualize-data`

## Description

PlotJuggler is a desktop application for plotting, exploring and analyzing time series data, both recorded and live. It is aimed at robot and sensor data such as logs and telemetry from ROS 2, MCAP and PX4 ULog sources. Signals can be dragged into zoomable time-series and XY plots, and 3D scenes, video and images stay aligned with the data on a single shared timeline.

Its loaders, streamers, parsers, toolboxes and transforms are all plugins. Extra ones can be installed from a built-in marketplace, or built with a plugin kit to support data sources that aren't covered yet. Parsers turn encoded messages (Protobuf, JSON, CBOR, BSON, Apache Arrow, MessagePack) into plottable series. Live connections run over ROS 2, MQTT, ZeroMQ, UDP, WebSocket and WebRTC. Built-in Lua and Python scripting lets users derive new series from loaded signals alongside the standard filters.

Beyond plotting, the application opens files such as CSV, MCAP, Parquet, PX4 ULog, MP4, PCD and PLY, and can read datasets from cloud storage. Several recordings can be loaded and overlaid to compare test runs. Signal tools include filtering, rate-of-change, integration and Fast Fourier Transforms. The 3D view renders point clouds, meshes, robot models, maps and trajectories, and the video view handles H.264, H.265 and AV1. Panels can be docked, arranged into tabs, and saved as layouts for later investigations.

PlotJuggler runs on Windows and Linux. Windows users get a per-user installer that needs no administrator rights. On Linux it is available through a Debian/Ubuntu package repository or as a portable AppImage.

## Tags

### Hardware & IoT

- [Robotics Visualization Tools](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/remote-sensor-queries/sensor-data-visualizers/robotics-visualization-tools.md) — Inspects robot and sensor data from ROS 2, MCAP and PX4 ULog with 3D scenes, video and synchronized timelines.
- [Real-time Sensor Streaming](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/real-time-sensor-streaming.md) — Connects to running robots and devices over ROS 2, MQTT, ZeroMQ and WebSocket to watch values as they arrive.
- [Robotic State Logging](https://awesome-repositories.com/f/hardware-iot/robotic-state-logging.md) — Reviews recorded robot and drone data from MCAP and PX4 ULog with 3D scenes and video aligned to the timeline.

### Part of an Awesome List

- [Plugin Architectures](https://awesome-repositories.com/f/awesome-lists/devtools/server-plugins-and-extensions/chat-server-plugins/plugin-architectures.md) — Loaders, streamers, parsers, toolboxes and transforms are separate plugins loaded by a core host application.

### Data & Databases

- [Custom Data Source Integrations](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/data-integration/custom-data-source-integrations.md) — Supports unsupported file formats, encodings and live protocols through plugins that can be installed or built with a plugin kit.
- [Time-Series Visualizers](https://awesome-repositories.com/f/data-databases/data-visualization-charts/time-series-visualizers.md) — Plots recorded or live time series such as logs and sensor streams in a single desktop application. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Interactive Time-Series Explorers](https://awesome-repositories.com/f/data-databases/data-visualization-charts/time-series-visualizers/interactive-time-series-explorers.md) — Opens recorded logs and sensor datasets, plots signals over time or against each other, and zooms into events to inspect samples.
- [Live Stream Visualizers](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/live-stream-visualizers.md) — Displays incoming values from live data sources as they arrive so real-time behavior can be inspected during operation. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Live Stream Visualizers](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/real-time-visualizations/live-stream-visualizers.md) — Connects to running systems over ROS 2, MQTT, ZeroMQ, UDP, WebSocket and WebRTC to visualize values as they arrive. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Multi-Format Data Loading](https://awesome-repositories.com/f/data-databases/tabular-data-frameworks/csv-data-loaders/multi-source-csv-loading/multi-format-data-loading.md) — Opens recorded data from CSV, MCAP, Parquet, PX4 ULog, MP4, PCD and PLY files for immediate plotting and exploration. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Message Decoders](https://awesome-repositories.com/f/data-databases/message-storage/message-reconstructors/message-decoders.md) — Pluggable parsers decode Protobuf, JSON, CBOR and MessagePack messages into flat named numeric series for plotting.
- [Recording Comparisons](https://awesome-repositories.com/f/data-databases/recording-comparisons.md) — Loads several recordings and overlays their signals so differences between experiments, tuning attempts or software versions are easy to spot.

### Software Engineering & Architecture

- [Plugin-Based Data Analysis Platforms](https://awesome-repositories.com/f/software-engineering-architecture/plugin-based-data-analysis-platforms.md) — Builds loaders, streamers, parsers, toolboxes and transforms as plugins, installable from a marketplace or created with a plugin kit.
- [Lua Scripting Functions](https://awesome-repositories.com/f/software-engineering-architecture/custom-scripting-engines/custom-scripting-functions/lua-scripting-functions.md) — Lets users write Lua and Python functions that compute new time series from existing signals alongside built-in filters. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Data Source Plugin Development](https://awesome-repositories.com/f/software-engineering-architecture/data-source-plugin-development.md) — Provides a plugin kit and official plugins for building new loaders, streamers, parsers and toolboxes for unsupported data sources. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Marketplace Plugin Installers](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins/plugin-marketplaces/marketplace-plugin-installers.md) — Lets users browse and install ready-made loaders, streamers and tools from a built-in marketplace in a few clicks. ([source](https://github.com/plotjuggler/plotjuggler#readme))

### Graphics & Multimedia

- [3D Scene Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/gpu-accelerated-ui-rendering/3d-scene-renderers.md) — Renders point clouds, meshes, robot models, maps and trajectories in a 3D view synchronized with the timeline. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Drag-and-Drop Time Series and XY Plots](https://awesome-repositories.com/f/graphics-multimedia/signal-plot-rendering/drag-and-drop-time-series-and-xy-plots.md) — Lets users drag signals into zoomable time-series and XY plots and inspect individual samples with precision. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Synchronized Video and Image Viewers](https://awesome-repositories.com/f/graphics-multimedia/synchronized-video-and-image-viewers.md) — Displays raw and encoded images and H.264, H.265 or AV1 video, including live WebRTC streams, aligned with the data timeline. ([source](https://github.com/plotjuggler/plotjuggler#readme))

### Scientific & Mathematical Computing

- [Signal Transformations](https://awesome-repositories.com/f/scientific-mathematical-computing/data-modeling-processing/signal-processing/signal-transformations.md) — Applies filters, rate-of-change, integration and Fast Fourier Transforms to clean noisy data and inspect its frequencies. ([source](https://github.com/plotjuggler/plotjuggler#readme))

### User Interface & Experience

- [Timeline Synchronization](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/timeline-sequence-management/animation-timelines/timeline-synchronization.md) — A single shared time cursor keeps every plot, video, image and 3D view aligned to the same moment.
- [Workspace Layout Persistence](https://awesome-repositories.com/f/user-interface-experience/native-window-layout-management/workspace-layout-persistence.md) — Stores arranged plot tabs, dockable panels and transforms as layouts so later investigations start from the same setup. ([source](https://github.com/plotjuggler/plotjuggler#readme))
- [Experiment Run Comparators](https://awesome-repositories.com/f/user-interface-experience/side-by-side-image-comparison/experiment-run-comparators.md) — Loads several recorded datasets side by side so differences between separate test runs can be examined in one view. ([source](https://github.com/plotjuggler/plotjuggler#readme))
