1 comments

  • cvanelteren 3 days 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!

    • zahlman 3 hours ago
      > Instead of wrestling with subplot positioning and styling, you can write:

      This would be more convincing if you showed the equivalent Matplotlib code and demonstrated that any improvements are not just a result of default settings being a closer match for what the example tries to do. The code shown here looks more or less like what I'd expect a Matplotlib hello-world to look like.