Sparkling gems and new releases from the world of Free and Open Source Software
FOSSPicks
![](/var/linux_magazin/storage/images/issues/2021/244/fosspicks/lv_morrison_graham.png/781973-1-eng-US/LV_Morrison_Graham.png_medium.png)
Graham looks at the PlotJuggler 3 data visualizer, note taking with Xournal++, the KStars planetarium, and more!
Data visualizer
PlotJuggler 3
PlotJuggler is an application that can help you visualize timestamped data. The timestamp part is important, because it's a reference to the kind of data that PlotJuggler is best capable of parsing and visualizing. Typically, this means data from sensors, such as an orientation value, voltage, light sensor resistance, flow meters, and velocity. Sensors can even be remote, and PlotJuggler will connect via protocols such as MQTT, WebSockets, ZeroMQ, and UDP. But it can also work from data saved to a file, from simple CSV to JSON, CBOR, and BSON. With this kind of focus, it's no surprise that the project established itself first as a tool for the robot operating system (ROS), where accurate monitoring and insightful analysis of this kind of data has a direct impact on the performance and development of the hardware. Despite this, as well as its intimidating looks and capabilities, PlotJuggler isn't difficult to use. It can even help with more mundane datasets, such as the location data from a bike ride, your running cadence from a smart watch, or even just your kitchen thermometer. This is thanks to its plotting window.
It's only after you've got your data into the application that PlotJuggler's real strengths become apparent. Datasets are loaded into a panel on the left (by default) called Timeseries List, and this can bundle multiple sources at once. You might want GPS data from one sensor, for example, and heart rate from another. To plot those values, you simply drag them from the Timeseries List into the default 2D plot view that takes up most of the window space. You can drag as many as you need, and each additional datapoint will be superimposed on top of previous values, with the axis and annotations automatically updated for scale. It's quick and easy to understand. Because all this data has a timestamp, you can play back the input values as they were received with the play button at the bottom of the plot. A cursor will then swoop across the plot to show which values were detected at which times, a little like it does in Audacity when playing an audio file (which is really just a different kind of plot).
The plot window is the most powerful element in the application. If you right-click within the view, for example, you can split the window both vertically and horizontally into as many separate plot panes as you need. You can then drag data elements into these panes to have their values plotted separately within the same time frame. This is useful if they use a completely different scale or set of axes, for instance, and you can even choose to lock or unlock the zoom value for each individual pane. There's also a plot editor that allows you to transform multiple inputs into a single output by writing a Lua-based function. This would be brilliant for calculating values such as velocity or distances from other values captured by sensors and then plotting the new derived values alongside those measured. Sliding across the datapoints, zooming in and out, and playing back through even complex datasets is always super-smooth thanks to the OpenGL acceleration. When you find a layout that works well for the dataset you're studying, you can save the entire layout, including the data, as an XML file to use for further analysis or to reload into the application to continue work.
Project Website
https://github.com/facontidavide/PlotJuggler
![](/var/linux_magazin/storage/images/issues/2021/244/fosspicks/fig07b8c32d4a74f7c6f56d0c3ed05fc6b9.png/781976-1-eng-US/fig07b8c32d4a74f7c6f56d0c3ed05fc6b9.png_large.png)
Note taking
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
![Learn More](https://www.linux-magazine.com/var/linux_magazin/storage/images/media/linux-magazine-eng-us/images/misc/learn-more/834592-1-eng-US/Learn-More_medium.png)
News
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.
-
SUSE Offers CentOS 7 Support with Liberty Linux Lite
SUSE's Liberty Linux support offering now includes CentOS 7, which means businesses won't be forced to migrate those servers for some time.
-
Ubuntu's App Center Finally Supports Local Installs Again
If you regularly download .deb files and would prefer a GUI method of installing, Ubuntu has your back.
-
AlmaLinux Now Supports Raspberry Pi 5
If you're looking to create with the Raspberry Pi 5 and want to use AlmaLinux as your OS, you're in luck because it's now possible.
-
Kubuntu Focus Releases New Iterations of Ir14 and Ir16 Laptops
If you're a fan of the Kubuntu Focus laptops or have been waiting for the right time to purchase one, that time might be now.
-
NixOS 24.05 Is Ready for Prime Time
The latest release of NixOS (Uakari) has arrived and offers its usual reproducible, declarative, and reliable goodness.
-
Linux Lite 7.0 Officially Released
Based on Ubuntu 24.04 and kernel 6.8, Linux Lite version 7 now offers more options than ever.
-
KaOS Linux 2024.05 Adds Bcachfs Support and More
With updates all around, KaOS Linux now includes support for the bcachefs file system.
-
TUXEDO Computers Unveils New Iteration of the Stellaris Laptop Line
The Stellaris Slim 15 is the 6th generation and includes either an AMD or Intel CPU