ultraplot

A succint wrapper for matplotlib

https://github.com/ultraplot/ultraplot

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A succint wrapper for matplotlib

Basic Info
Statistics
  • Stars: 117
  • Watchers: 5
  • Forks: 15
  • Open Issues: 19
  • Releases: 23
Created about 1 year ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Citation Zenodo

README.rst

.. image:: https://raw.githubusercontent.com/Ultraplot/ultraplot/refs/heads/main/UltraPlotLogo.svg
    :alt: UltraPlot Logo
    :width: 100%

|downloads| |build-status| |coverage| |docs| |pypi| |code-style| |pre-commit| |pr-welcome| |license| |zenodo|

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+).

.. _ProPlot: https://github.com/proplot-dev/

Why UltraPlot? | Write Less, Create More
=========================================
.. image:: https://raw.githubusercontent.com/Ultraplot/ultraplot/refs/heads/main/logo/whyUltraPlot.svg
    :width: 100%
    :alt: Comparison of ProPlot and UltraPlot
    :align: center

Checkout our examples
=====================

Below is a gallery showing random examples of what UltraPlot can do, for more examples checkout our extensive `docs `_.

.. list-table::
   :widths: 33 33 33
   :header-rows: 0

   * - .. image:: https://ultraplot.readthedocs.io/en/latest/_static/example_plots/subplot_example.svg
         :alt: Subplots & Layouts
         :target: https://ultraplot.readthedocs.io/en/latest/subplots.html
         :width: 100%
         :height: 200px

       **Subplots & Layouts**

       Create complex multi-panel layouts effortlessly.

     - .. image:: https://ultraplot.readthedocs.io/en/latest/_static/example_plots/cartesian_example.svg
         :alt: Cartesian Plots
         :target: https://ultraplot.readthedocs.io/en/latest/cartesian.html
         :width: 100%
         :height: 200px

       **Cartesian Plots**

       Easily generate clean, well-formatted plots.

     - .. image:: https://ultraplot.readthedocs.io/en/latest/_static/example_plots/projection_example.svg
         :alt: Projections & Maps
         :target: https://ultraplot.readthedocs.io/en/latest/projections.html
         :width: 100%
         :height: 200px

       **Projections & Maps**

       Built-in support for projections and geographic plots.

   * - .. image:: https://ultraplot.readthedocs.io/en/latest/_static/example_plots/colorbars_legends_example.svg
         :alt: Colorbars & Legends
         :target: https://ultraplot.readthedocs.io/en/latest/colorbars_legends.html
         :width: 100%
         :height: 200px

       **Colorbars & Legends**

       Customize legends and colorbars with ease.

     - .. image:: https://ultraplot.readthedocs.io/en/latest/_static/example_plots/panels_example.svg
         :alt: Insets & Panels
         :target: https://ultraplot.readthedocs.io/en/latest/insets_panels.html
         :width: 100%
         :height: 200px

       **Insets & Panels**

       Add inset plots and panel-based layouts.

     - .. image:: https://ultraplot.readthedocs.io/en/latest/_static/example_plots/colormaps_example.svg
         :alt: Colormaps & Cycles
         :target: https://ultraplot.readthedocs.io/en/latest/colormaps.html
         :width: 100%
         :height: 200px

       **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:

.. code-block:: bash

   pip install ultraplot
   conda install -c conda-forge ultraplot

Likewise, an existing installation of UltraPlot can be upgraded
to the latest version with:

.. code-block:: bash

   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}
    }

.. |downloads| image:: https://static.pepy.tech/personalized-badge/UltraPlot?period=total&units=international_system&left_color=black&right_color=orange&left_text=Downloads
    :target: https://pepy.tech/project/ultraplot
    :alt: Downloads

.. |build-status| image:: https://github.com/ultraplot/ultraplot/actions/workflows/build-ultraplot.yml/badge.svg
    :target: https://github.com/ultraplot/ultraplot/actions/workflows/build-ultraplot.yml
    :alt: Build Status

.. |coverage| image:: https://codecov.io/gh/Ultraplot/ultraplot/graph/badge.svg?token=C6ZB7Q9II4&style=flat&color=53C334
    :target: https://codecov.io/gh/Ultraplot/ultraplot
    :alt: Coverage

.. |docs| image:: https://readthedocs.org/projects/ultraplot/badge/?version=latest&style=flat&color=4F5D95
    :target: https://ultraplot.readthedocs.io/en/latest/?badge=latest
    :alt: Docs

.. |pypi| image:: https://img.shields.io/pypi/v/ultraplot?style=flat&color=53C334&logo=pypi
    :target: https://pypi.org/project/ultraplot/
    :alt: PyPI

.. |code-style| image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=flat&logo=python
    :alt: Code style: black

.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/Ultraplot/ultraplot/main.svg
    :target: https://results.pre-commit.ci/latest/github/Ultraplot/ultraplot/main
    :alt: pre-commit.ci status

.. |pr-welcome| image:: https://img.shields.io/badge/PRs-welcome-f77f00?style=flat&logo=github
    :alt: PRs Welcome

.. |license| image:: https://img.shields.io/github/license/ultraplot/ultraplot.svg?style=flat&color=808080
    :target: LICENSE.txt
    :alt: License

.. |zenodo| image:: https://zenodo.org/badge/909651179.svg
    :target: https://doi.org/10.5281/zenodo.15733564
    :alt: DOI

Owner

  • Name: Ultraplot
  • Login: Ultraplot
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use UltraPlot in your work, please cite it using the following metadata."
title: "UltraPlot"
authors:
  - family-names: "van Elteren"
    given-names: "Casper"
    orcid: "https://orcid.org/0000-0001-9862-8936"
  - family-names: "Becker"
    given-names: "Matthew R."
    orcid: "https://orcid.org/0000-0001-7774-2246"
date-released: "2025-01-01"
version: "1.57"
doi: "10.5281/zenodo.15733580"
repository-code: "https://github.com/Ultraplot/UltraPlot"
license: "MIT"
keywords:
  - plotting
  - matplotlib
  - scientific visualization
  - wrapper
references:
  - type: software
    name: "ProPlot"
    authors:
      - family-names: "Davis"
        given-names: "Luke"
    url: "https://github.com/lukelbd/proplot"
  - type: software
    name: "Matplotlib"
    authors:
      - family-names: "Hunter"
        given-names: "John D."
    url: "https://matplotlib.org/"

GitHub Events

Total
  • Create event: 15
  • Release event: 5
  • Issues event: 50
  • Watch event: 19
  • Delete event: 6
  • Issue comment event: 323
  • Push event: 43
  • Pull request event: 66
  • Pull request review event: 82
  • Pull request review comment event: 47
  • Fork event: 2
Last Year
  • Create event: 15
  • Release event: 5
  • Issues event: 50
  • Watch event: 19
  • Delete event: 6
  • Issue comment event: 323
  • Push event: 43
  • Pull request event: 66
  • Pull request review event: 82
  • Pull request review comment event: 47
  • Fork event: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 109
  • Total pull requests: 181
  • Average time to close issues: 4 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 29
  • Total pull request authors: 10
  • Average comments per issue: 4.19
  • Average comments per pull request: 2.61
  • Merged pull requests: 122
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 109
  • Pull requests: 181
  • Average time to close issues: 4 days
  • Average time to close pull requests: 1 day
  • Issue authors: 29
  • Pull request authors: 10
  • Average comments per issue: 4.19
  • Average comments per pull request: 2.61
  • Merged pull requests: 122
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • cvanelteren (25)
  • lwq-star (10)
  • beckermr (9)
  • ToryDeng (9)
  • ybmy001 (7)
  • gepcel (6)
  • Ockenfuss (5)
  • nickbsb (4)
  • austin-hoover (3)
  • syrte (3)
  • thibaultDrt (3)
  • Jhsmit (3)
  • sinan0310 (3)
  • 664787022 (2)
  • pgf (2)
Pull Request Authors
  • cvanelteren (145)
  • beckermr (25)
  • dependabot[bot] (3)
  • Copilot (2)
  • Jhsmit (1)
  • pre-commit-ci[bot] (1)
  • rcomer (1)
  • pgf (1)
  • austin-hoover (1)
  • syrte (1)
Top Labels
Issue Labels
bug (9) invalid (7) question (4) enhancement (3) wontfix (1)
Pull Request Labels
enhancement (4) bug (4) dependencies (3) github_actions (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 2,455 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 26
  • Total maintainers: 1
pypi.org: ultraplot

A succinct matplotlib wrapper for making beautiful, publication-quality graphics.

  • Versions: 26
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2,455 Last month
Rankings
Dependent packages count: 9.8%
Average: 32.5%
Dependent repos count: 55.2%
Maintainers (1)
Last synced: 6 months ago