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.
cvanelteren•2h ago
Why UltraPlot?
Key improvements over vanilla matplotlib:
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!