We are proud to announce ControlPlots 0.2.7, the first release that has all features we consider as essential for our research.
Main design goals:
high quality plots, many plot windows can be open at the same time
multi-channel oscilloscope like plots that allow zoom and pan with a synchronized time axis
easy to use and fast 2D animations of particle systems, where the particles are connected by segments
high quality bode plots compatible with ControlSystems.jl
All plots can be created using just one function call, even if you plot n x m time-series with labels and a title.
An n x m time-series are n vertically aligned plots with one common x-axis, and m time-series for any of these plots, for example useful to compare set values and actual values of a control system.
Most plots can be saved, modified and plotted again. Useful if you need to change labels or titles after the plot was created by an expensive simulation.
You can install the examples with
using ControlPlots
ControlPlots.install_examples()
Thanks for developing this package! I especially like the n x m plot, very useful when I need to check a lot of different states during model development.
Noticing that PyPlot (Matplotlib) is among dependencies, I was just wondering: what does Matplotlib have that native Julia plotting ecosystem does not have?
It is more mature. Makie did not reach version 1.0 yet and has breaking changes pretty often. Furthermore Makie is a much heavier dependency. And until recently you could not launch multiple GLMakie plot windows. This might work now, though. Finally, creating animations with Plots.jl on Windows is extremely slow, even though it works well on Linux. ControlPlots.jl works well both on Windows and Linux. I could not test it on MacOS, though.
True although I wouldn’t put too much weight on that number alone because
and has breaking changes pretty often
we have a relatively low threshold for what we consider breaking so every once in a while we do have a minor release that fixes some things in a non-backward compatible (i.e. breaking) way. But that rarely means that we’re breaking lots of people’s normal plotting code, especially now that much more people are using Makie day to day. It’s more likely changes relate to less used features, but we still have to be technically correct and tag breaking if we change those. The important thing is how much code churn a given breaking change causes in the ecosystem, and that can differ a lot.
until recently you could not launch multiple GLMakie plot windows
GLMakie has had that for a while now added in v0.17.6 (2022-06-17)
There is one more reason for me to not to use Makie as default plotting backend: I want to:
be able to have one window per plot
be able to export vector graphics for high quality publications
I think the first point is possible with GLMakie, the second is possible with CairoMakie, but there is no Makie backend that supports both features. ControlPlots.jl does support both of these features.