PlotJuggler Tutorials: Learn to Plot, Transform and Stream Your Data

PlotJuggler is easy to open and surprisingly deep to master. Under the drag-and-drop surface sit file loaders for CSV, ROS bags, MCAP and ULog files, per-signal time offsets, XY plots, a Lua scripting engine for custom transforms, savable layouts, and live streaming over WebSocket, MQTT, ZeroMQ and UDP. These tutorials walk that whole surface in a sensible order — no prior PlotJuggler experience assumed, and every guide states clearly whether it describes PlotJuggler 3 (3.17.2), PlotJuggler 4 (4.0.0), or both. This hub is an independent, unofficial guide; the program itself comes from the official releases on our Download page.

The learning path

Work through the four stages in order if you are new. If you already plot data confidently, jump straight to the stage that matches your problem — each tutorial is self-contained and cross-links the guides it depends on.

StageWhat you learnStart with
1. Start hereOpen PlotJuggler, load a first file by drag-and-drop, put signals on a plot, navigate the timeline and save your view.Getting Started with PlotJuggler
2. Load dataBring in the files you actually have: CSV exports, ROS 1 / ROS 2 bags and MCAP recordings — and load several recordings at once to compare them.CSV import · ROS bag & MCAP
3. TransformAlign signals that start at different times, plot one signal against another, and compute new series with built-in transforms and Lua custom functions.Time offset · Lua custom functions
4. Stream & reuseWatch live data as it arrives, and capture a good view as a layout you can reload and share with your team.Live streaming · Layouts

All nine tutorials

New in PlotJuggler 4? Start with the PJ4 guides

Several tutorials above describe behaviour that differs between generations — multiple-recording overlays, per-dataset offsets and the layout format among them. If you are on the new line, these six guides from our PlotJuggler 4 section give you the background:

Before the tutorials: get installed

Every tutorial assumes a working PlotJuggler. If you have not installed it yet — or you are not sure which line you have — start with the Install hub: Windows, Ubuntu, ROS 2 and macOS guides for both PJ4 and PJ3, plus the troubleshooting guide for installs that will not start. Files and SHA-256 checksums are on the Download page. Two version facts worth fixing in your mind before you read further: PJ4 4.0.0 (21 September 2026) is the current release and a ground-up rewrite, while PJ3 3.17.2 is the classic line the ROS ecosystem still runs on. Neither is a mistake to learn — but they are not identical, and these tutorials say which one each workflow belongs to.

This site is independently operated and is not affiliated with Davide Faconti or the PlotJuggler project. The official project site is plotjuggler.io.