Gold Sponsor: Greenzie
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 re-use 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.
- Load CSV files.
- Load ULog (PX4).
- Subscribe to many different streaming sources: MQTT, Websockets, ZeroMQ, UDP, etc.
- Understands 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...
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, that 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 ;)
To learn how to use PlotJuggler, check the tutorials here:
Tutorial 1 | Tutorial 2 | Tutorial 3 |
---|---|---|
![]() |
![]() |
![]() |
Some plugin 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
Linux AppImage (compatible with Ubuntu 18.04 or later): PlotJuggler-3.4.1-x86_64.AppImage
Windows Installer: PlotJuggler-Windows-3.4.5-installer
Install the debian packages using:
sudo apt install ros-$ROS_DISTRO-plotjuggler-ros
Clone the repository as usual:
git clone https://github.com/facontidavide/PlotJuggler.git
The only binary dependency that you need installed in your system is Qt5. On Ubuntu, the debians can be installed with the the command:
sudo apt -y install qtbase5-dev libqt5svg5-dev libqt5websockets5-dev libqt5opengl5-dev libqt5x11extras5-dev libprotoc-dev
On Fedora:
sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel qt5-qtopendl-devel qt5-qtx11extras-devel
Then compile using cmake (qmake is NOT supported):
mkdir build; cd build
cmake ..
make
sudo make install
Note: the plugins need to be installed in the same folder of the executable.
To install PlotJuggler, just type:
sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros
To launch PlotJuggler on ROS, use the command:
rosrun plotjuggler plotjuggler
or, if are using ROS2:
ros2 run plotjuggler plotjuggler
Since version 3.x, ROS plugins have been moved to a separate repository:
https://github.com/PlotJuggler/plotjuggler-ros-plugins
Refer to the instructions in the this repository if you want to compile PJ and its ROS plugins from source.
PlotJuggler required a lot of work to be developed; my goal is to build the most intuitive and powerfull tool to visualize data and timeseries.
If you find PlotJuggler useful, consider making a donation on PayPal or become a Github Sponsor.
If you use PlotJuggler at work, your company can support the development of those specific features they need.
Contact me for more details.