- cross-posted to:
- opensource@programming.dev
- cross-posted to:
- opensource@programming.dev
Hi everyone,
I’m trying to raise awareness of UltraPlot — a succinct wrapper for Matplotlib. The project is aimed at scientists and researchers who need to create professional, publication-ready figures while keeping their code expressive and minimal.
UltraPlot provides tools that simplify many common but cumbersome plotting tasks, including:
- subplot sharing and layout management
- panel and grid organization
- automatic subplot tagging
- easy geo plotting and better GeoAxes handling
- and many other quality-of-life features for complex figures
If you regularly work with Matplotlib and want a cleaner, more structured plotting workflow, UltraPlot might be helpful.
Checkout our docs at https://ultraplot.readthedocs.io/ or star us on github: https://github.com/Ultraplot/UltraPlot/
I came ready to hate with bias because I often don’t like wrappers, but at least the
.formatseems like an objective improvement.But I never understood why matplotlib insists on
ax, figand that’s still in there…Directly working with matplotlib classes tends to be more clear and concise than pyplot, makes things easier when working with multiple figures and axes, and is certainly more “pythonic”.
I disagree.
Looks like a solid project overall! Thanks for your effort!
Thanks for not burning us to the ground immediately😉!
Since we don’t intend to replace matplotlib, we still inherent the quicks but intend to smooth those out. For example we provide a custom gridspec that allows for 2d slicing (or linear slicing); layouts by default are flexible and sharing where it makes sense.
I do wonder, what would the alternative look like for the standard `fig, ax‘ paradigm? I am aware of plotly’s approach, but am willing to explore other options.
I don’t want to start a war here, but R has solved that already much better with the entire ggplot2 ecosystem.
ML applications are much better supported in Python, but for anything statistics related I would rather use R.

