Show HN: UltraPlot. A Succinct Wrapper for Matplotlib

2 cvanelteren 1 9/10/2025, 7:14:14 PM github.com ↗

Comments (1)

cvanelteren · 3h ago
For those unfamiliar, ProPlot was widely loved for enabling publication-quality graphics with minimal effort. UltraPlot continues that mission with active development, updated compatibility, and a focus on simplicity.

Why UltraPlot?

Key improvements over vanilla matplotlib:

  - Effortless subplot management: build complex multi-panel layouts in one line

  - GeoAxes support included out of the box

  - Smarter aesthetics: beautiful colormaps, fonts, and styles without extra code

  - Intuitive syntax: less boilerplate, more plotting

  - Seamless compatibility: everything you know from matplotlib still applies
Instead of wrestling with subplot positioning and styling, you can write:

``` import ultraplot as uplt

layout = [[0, 1, 2], [3, 3, 4]]

fig, axs = uplt.subplots(layout)

axs[0].plot(x, y1, label="Data 1")

axs[1].plot(x, y2, label="Data 2")

axs.format(xlabel="Hello", ylabel="Hacker news", abc="[A]") # format applies to all axes fig.legend()

```

...and get a clean, professional-looking plot in seconds.

Get Started:

- GitHub: https://github.com/Ultraplot/ultraplot

- Docs: https://ultraplot.readthedocs.io/en/latest/

Try it out and let us know what you think — contributions and feedback are very welcome!