Awesome timeseries visualization
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github README and splashscreen updates Aug 16, 2018
backward-cpp Fix build failures on Archlinux (#57) Oct 22, 2017
color_widgets trying to fix #66 Jan 15, 2018
common fixed issue reported in #68 Feb 15, 2018
datasamples Tf broadcasting (#124) Jan 18, 2019
docs version bump Jan 21, 2019
include/PlotJuggler Merge branch 'sim_time' Feb 6, 2019
launch README and splashscreen updates Aug 16, 2018
plotter_gui fix Feb 13, 2019
plugins Allow to build the DataStreamClientSample on Linux (#143) Feb 17, 2019
qwt Spurious DragLeave fixed? (The worst and most annoying bug of PlotJug… Nov 11, 2018
site documentation fix Apr 24, 2017
snap Update snapcraft.yaml Aug 11, 2017
.appveyor.yml Update .appveyor.yml Aug 14, 2018
.gitignore removed duplication of binaries Apr 21, 2017
.travis.yml Update .travis.yml Jan 24, 2019
CHANGELOG.rst 2.1.2 Feb 13, 2019
CMakeLists.txt version bump Feb 13, 2019 README updated Feb 8, 2018
PlotJuggler.desktop adding instructions to build AppImage Feb 9, 2019 Update Feb 14, 2019
_config.yml Updated Config Feb 23, 2017 Updates related to AppImage Feb 10, 2019
contributors.txt Update contributors.txt Jan 15, 2019
mkdocs.yml site appearance update Apr 20, 2017
package.xml 2.1.2 Feb 13, 2019
plotjuggler-icon.png adding instructions to build AppImage Feb 9, 2019
show_me_the_rosbag.jpg Add files via upload Aug 16, 2018
splash.xcf README and splashscreen updates Aug 16, 2018
splash_2.xcf new splashscreen Jan 19, 2019

Ubuntu 14.04 build (Semaphore): Build Status

ROS Indigo/Kinetic build (Travis): Build Status

Join the chat at

PlotJuggler 2.1.X

QT5 based application to display time series in plots, using an intuitive "drag and drop" interface.

It can be used either to:

  • load static data from file or
  • connect to live streaming of data.

Its functionality can be easily extended through plugins.

To understand what PlotJuggler can do for you, take a look to the following video PlotJuggler on Vimeo


New in version 2.X

It is now possible to create custom timeseries! Simply write your own JavaScript function and apply it to one of more existing timeseries.

Many thanks to @1r0b1n0, who developed the initial version of this feature, and to our first sponsor, a robotics company that made a donation, but prefers to remain anonymous for the time being.

Watch this video to learn how to use it.

Custom timeseries

Just "Download and Run" (Ubuntu 16.04 Xenial or later)

For those of you that can't wait to get your hands dirty, just download this AppImage:


Do not forget to make it executable with the command

chmod +x ./PlotJuggler-2.1.2-x86_64.AppImage

How to build (non ROS users)

Clone the repository as usual:

  git clone

The only binary dependency that you need installed in your system is Qt5. On Ubuntu the debians can be installed with the command:

sudo apt-get -y install qtbase5-dev libqt5svg5-dev qtdeclarative5-dev

On Fedora:

sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-qtdeclarative-devel

Then compile using cmake (qmake is NOT supported):

 mkdir build; cd build
 cmake ..
 sudo make install

Note: the plugins need to be installed in the same folder of the executable or in /usr/local/lib/PlotJuggler/.

How to build (ROS users)

The following instructions are for ROS Kinetic. Adapt them accordingly if you are using a different version of ROS.

The easiest way to install PlotJuggler is through the command:

sudo apt-get install ros-kinetic-plotjuggler 

Nevertheless, if you want to compile it from source, for instance to try the very latest version on the master branch, you must build PlotJuggler using catkin, otherwise the ROS related plugins will not be included.

Follow these instructions:

sudo apt-get install qtbase5-dev libqt5svg5-dev ros-kinetic-ros-type-introspection 
mkdir -p ws_plotjuggler/src; cd ws_plotjuggler/src
git clone
cd ..
source devel/setup.bash

You should see the following message at the beginning of the compilation step:

"PlotJuggler is being built using CATKIN. ROS plugins will be compiled"

Both the executable and the plugins will be created in ws_plotjuggler/devel/lib/plotjuggler.

To run the application, use the command:

rosrun plotjuggler PlotJuggler 

If you like PlotJuggler...

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 any of these platforms: BuyMeACoffe, PayPal or LiveraPay.

If you use PlotJuggler at work, your company can become a sponsor and support the development of those specific features they need.

Contact me for more details.