|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| sr_gui_hand_calibration |
Launch files
Messages
Services
Plugins
Recent questions tagged plotjuggler at Robotics Stack Exchange
|
plotjuggler package from plotjuggler repoplotjuggler |
ROS Distro
|
Package Summary
| Version | 3.15.0 |
| License | MPL-2.0 |
| Build type | CATKIN |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/facontidavide/PlotJuggler.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-27 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Davide Faconti
Authors
- Davide Faconti
Gold Sponsor:
PlotJuggler 3.15
PlotJuggler is a tool to visualize time series that is fast, powerful and intuitive.
Noteworthy features:
- Simple Drag & Drop user interface.
- Load data from file.
- Connect to live streaming of data.
- Save the visualization layout and configurations to reuse them later.
- Fast OpenGL visualization.
- Can handle thousands of timeseries and millions of data points.
- Transform your data using a simple editor: derivative, moving average, integral, etc…
- PlotJuggler can be easily extended using plugins.

Data sources (file and streaming)
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.
- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.
- Well integrated with ROS: open rosbags and/or subscribe to ROS topics (both ROS1 and ROS2).
- Supports the Lab Streaming Layer, that is used by many devices.
- Easily add your custom data source and/or formats…
Transform and analyze your data
PlotJuggler makes it easy to visualize data but also to analyze it. You can manipulate your time series using a simple and extendable Transform Editor.

Alternatively, you may use the Custom Function Editor, which allows you to create Multi-input / Single-output functions using a scripting language based on Lua.
If you are not familiar with Lua, don’t be afraid, you won’t need more than 5 minutes to learn it ;)

Tutorials
To learn how to use PlotJuggler, check the tutorials here:
| Tutorial 1 | Tutorial 2 | Tutorial 3 |
|---|---|---|
![]() |
![]() |
![]() |
Supported plugins
Some plugins can be found in a different repository. The individual README files should include all the information needed to compile and use the plugin.
Please submit specific issues, Pull Requests and questions on the related Github repository:
If you want a simple example to learn how to write your own plugins, have a look at PlotJuggler/plotjuggler-sample-plugins
Installation
You can download the latest ready to use binaries from the Release page.
Snap (recommended in Ubuntu, to ROS users too)
The snap contains a version of PlotJuggler that works (with some limitations) with ROS2.
To install it in Ubuntu, run:
File truncated at 100 lines see the full file
Changelog for package plotjuggler
3.15.0 (2025-12-27)
3.14.6 (2025-12-27)
- cherry pick #835: use timspam in protobuf, if present
- formatting
- fix style in preferences
- Feature: add option to swap pan/zoom mouse actions (#1235)
- cleanup ULG plugin
- Merge branch 'he_parse'
- fix formatting
- fix comments
- CSV parsing: fix issue #1237
- Add hexadecimal timestamp parsing (0x prefix only) Support hexadecimal values in CSV files when explicitly prefixed with 0x. This avoids ambiguity with string labels like 'A' or 'B' which could otherwise be misinterpreted as hex values. Addresses feedback from \@facontidavide on #1227
- Fix plugin installation path from /usr/OFF to /usr/lib/plotjuggler/plugins (#1239)
- Add GitHub Copilot instructions for repository context (#1242)
- add devcontainer
- should fix #1223
- formatting
- Contributors: Copilot, Davide Faconti, panav, viktor-av
3.14.5 (2025-12-22)
- add option to change width of lines in PlotWidget Editor
- fix snap build
- Contributors: Davide Faconti
3.14.4 (2025-12-19)
- change ID
- Install plugins into lib tree (#1228) Fixes #1153
- 🛠️ Bump actions/download-artifact from 6 to 7 (#1229) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- 🛠️ Bump actions/upload-artifact from 5 to 6 (#1230) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- fix issue #1226
- 🛠️ Bump actions/cache from 4 to 5 (#1225) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Contributors: Davide Faconti, SammysHP, dependabot[bot]
3.14.3 (2025-12-07)
- refactored CSV plugin for robust date/time
- fix ULOG link in README
- add 3rdparty date parsing
- add margin to collapsed QSplitter
- add new name filter for custom series
- Contributors: Davide Faconti
3.14.2 (2025-12-06)
- add new binary filter
- add code of conduct and remove old issue template
- Update issue templates
- fix data merging
- new memes
- Contributors: Davide Faconti
3.14.0 (2025-11-22)
-
bug fix in multiple curves filter
-
Merge pull request #1192 from MichelJansson/feature/transform-multiselect Support curve multi-selection in Transform Editor
-
Merge branch 'main' of github.com:facontidavide/PlotJuggler
-
add new anonymous telemetry
-
Merge pull request #1199 from af-maad/fix/parquet-timestamp-selection Fix parquet timestamp selection when some columns are invalid types
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| catkin | |
| ament_cmake | |
| roslib | |
| roscpp | |
| ament_index_cpp | |
| rclcpp | |
| data_tamer_cpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| plotjuggler_ros |





