PlotJuggler package

I wrote a really basic package, GitHub - pbouffard/PlotJuggler.jl, to dump timeseries data into the PlotJuggler program.

demo_anim

Capabilities are quite limited compared to options in the existing plotting ecosystem, but it’s quite fast to get a plot onscreen if all you want to do is, e.g., plot cos(t) vs t, with a really simple syntax:

using PlotJuggler

t = 0:0.01:5
f1 = cos.(2*pi*t)
f2 = sin.(2*pi*t)

pjplot(t, (; f1, f2))

The (; f1, f2) abuses NamedTuple syntax to sneak in the labels for the legend without having to type them another time and without any extra characters like quotes. So the above would be roughly equivalent to

using Plots
plot(t, f1, label="f1")
plot!(t, f2, label="f2")

Of course it would be easy enough to adapt the NamedTuple abuse thing to the Plots.jl syntax. What I mostly like PJ for, though, is the “time tracker” – the line where you can scrub across time and quickly see the value of each curve at that time point. I know with some of the Plots.jl backends (and Makie) that something like that it’s possible but it’s nice that it’s built into PJ.

Anyway, hope someone else might find it useful!

Edit: Added some basic XY plot functionality:

t = 0:0.01:5
a = cos.(2*pi*t)
b = sin.(2*pi*t)
c = a .* exp.(-t)
d = b .* exp.(-t)

pjplot(t, (; c, d); xy=(; c, d))

13 Likes