Starplot v0.21 is here!
Starplot 0.21 is now available, and it's the biggest release yet.
Here's a look at what's new, and what to check before you upgrade:
ποΈπ¨ SVG-first rendering engine
The BIG change: Starplot no longer renders through matplotlib + cartopy. It now has its own SVG-first rendering engine that comes with many benefits and new features:
- At least 2x faster plotting when exporting to SVG
- Gradient fills on markers, polygons, and backgrounds
- Optimized SVG files β easier and faster to work with in Inkscape, Affinity Designer, Illustrator, and other design tools
- A lighter install β no more matplotlib/cartopy dependency, and we also dropped bundled fonts from the PyPI package to shrink it further
- A strong foundation for what's next β the new engine makes it much easier for us to build features like interactivity and animation
Exporting to PNG is also still supported, but requires the Cairo graphics library. It should be easy to install on most operating systems.
π¨ Gradient fills, everywhere
Gradients were previously limited to the plot background. But in version 0.21, a GradientStyle can be set as the fill of a marker, a polygon, the axes background, or the figure background.
There's also a new built-in callable for creating a gradient fill on star markers, based on the star's B-V index (used in the horizon plot above).
Also illustrated above: a new ground() function on horizon plots.
πΊοΈ New Projection + Tissot function
Gnomonicprojection is now available for map plotstissot()β a new plot method that draws a Tissot's indicatrix, a grid of equal-size circles on the plot that helps you visualize the distortion of a projection.
βοΈ More consistent styling framework
The styling framework has also been refactored to make field names more consistent β e.g. color and edge_color are now just fill and stroke everywhere. These names match standard SVG terminology which makes it easier to understand Starplot's styling framework if you're familiar with CSS (or using an LLM).
π Python 3.14 support
Starplot now officially supports Python 3.14.
π New & Improved Documentation
- New Styling Explorer
- New page on using gradients
- New page on using color
- New page on plot layout
- Updated tutorial page
β οΈ A few breaking changes β οΈ
Because so much of the rendering internals changed, v0.21 does include some breaking changes β mainly around the styling framework, but also how export() works now that matplotlib/cartopy are gone. These changes were made deliberately, to make the API more consistent going forward.
All the breaking changes have been summarized in a migration guide:
β‘οΈ Migrating to v0.21
π Help Wanted
Want to help make Starplot better? Here are a few things we need help with right now:
- Anything on our roadmap. If you're interested in helping with any of these, let me know, and I'd be happy to help you get started with contributing (setting up your environment, etc).
- Check for errors on the Gaia DR3 catalog builder
- Adding more language translations - details here
- Creating more catalog builders
Read more about contributing here βοΈ
π Show your support for Starplot
- All Sky Map - made with Starplot!
- Starplot stickers
As always, if you notice any bugs or have questions, please open an issue on GitHub, join us on Discord, or just reply to this email.
Happy Starplotting!!
Steve Berardi