Starplot is a Python library for creating star charts and maps of the sky.
- 🗺️ Maps - including 10+ customizable projections
- ⭐ Zenith Charts - shows the entire sky at a specific time and place
- 🌃 Horizon Charts - shows the horizon at a specific time and place
- 🔭 Optic Simulations - shows what you'll see through an optic (e.g. telescope) at a specific time and place
- 🪐 Planets and Deep Sky Objects (DSOs) - more than 14,000 objects built-in
- ☄️ Comets and Satellites - easy trajectory plotting
- 🎨 Custom Styles - for all objects and with 8+ built-in themes
- 📥 Export - png, svg, jpeg
- 🚀 Data Backend - powered by DuckDB + Ibis for fast object lookup
- 🧭 Label Collision Avoidance - ensuring all labels are readable
- 🌐 Localization - label translations for French and Chinese
Zenith chart of the stars from a specific time/location:
Map around the constellation Orion:
The Pleiades star cluster, as seen through a refractor telescope from a specific time and location:
To create a star chart for tonight's sky as seen from Palomar Mountain in California:
from datetime import datetime
from zoneinfo import ZoneInfo
from starplot import ZenithPlot, Observer, styles, _
tz = ZoneInfo("America/Los_Angeles")
dt = datetime.now(tz).replace(hour=22)
observer = Observer(
dt=dt,
lat=33.363484,
lon=-116.836394,
)
p = ZenithPlot(
observer=observer,
style=styles.PlotStyle().extend(
styles.extensions.BLUE_MEDIUM,
),
resolution=4096,
autoscale=True,
)
p.constellations()
p.stars(where=[_.magnitude < 4.6])
p.constellation_labels()
p.horizon()
p.export("starchart.png")For a demo of Starplot's zenith charts, check out:
Sky Atlas - Star Chart Creator
- Chat with other starplotters on our Discord server
- Follow us on Bluesky
- Join our newsletter
- See more examples at Starplotting.com
Contributing to Starplot is welcome and very much appreciated! Please see here for details.
- 📡 Custom data catalogs
- 🧮 Coordinate system helpers
- 🌑 Planet moons
- ✴️ Custom markers
- 😄 🔭 Clear skies
See more details on the Public Roadmap


