A succinct matplotlib wrapper for making beautiful, publication-quality graphics. It builds upon ProPlot and transports it into the modern age (supporting mpl 3.9.0+).
Why UltraPlot? | Write Less, Create More
Checkout our examples
Below is a gallery showing random examples of what UltraPlot can do, for more examples checkout our extensive docs.
Subplots & Layouts Create complex multi-panel layouts effortlessly. Cartesian Plots Easily generate clean, well-formatted plots. Projections & Maps Built-in support for projections and geographic plots. Colorbars & Legends Customize legends and colorbars with ease. Insets & Panels Add inset plots and panel-based layouts. Colormaps & Cycles Visually appealing, perceptually uniform colormaps.
Documentation
The documentation is published on readthedocs.
Installation
UltraPlot is published on PyPi and conda-forge. It can be installed with pip or conda as follows:
pip install ultraplot conda install -c conda-forge ultraplot
Likewise, an existing installation of UltraPlot can be upgraded to the latest version with:
pip install --upgrade ultraplot conda upgrade ultraplot
To install a development version of UltraPlot, you can use pip install git+https://github.com/ultraplot/ultraplot.git or clone the repository and run pip install -e . inside the ultraplot folder.
If you use UltraPlot in your research, please cite it using the following BibTeX entry:
@software{vanElteren2025, author = {Casper van Elteren and Matthew R. Becker}, title = {UltraPlot: A succinct wrapper for Matplotlib}, year = {2025}, version = {1.57.1}, publisher = {GitHub}, url = {https://github.com/Ultraplot/UltraPlot} }