Skip to content

The Pleiades Star Cluster

Plot

pic

pic Dwarf 3

pic Starplot

Winter in the Northern Hemisphere brings us some of the most beautiful open star clusters, including the well-known Pleiades (also known as the Seven Sisters or Messier 45). It's so popular that it even has its own subreddit - /ItsAlwaysPleiades 😆

I recently got a Dwarf 3 smart telescope to help with testing Starplot and improving its star-sizing algorithms, and decided to make the Pleiades my first target. Above you'll see the photo I took with the Dwarf 3 vs the optic plot I created with Starplot. I think Starplot did a pretty good job with the star sizes and colors here, but it is missing a lot of stars (mostly because Starplot is currently limited to the Tycho-2 star catalog). I'm looking forward to using much bigger star catalogs (like Gaia) in Starplot, which will be possible in the next version :)

How to See It

  • 📅 When: Fall to winter every year
  • 🌎 Where (on Earth): Visible from Northern Hemisphere
  • 👀 Where (in the sky): Look east (it will move west across the sky as we get deeper into winter)
  • 🔭 What you need: Just your eyes or binoculars to see individual stars. The red dashed circle in the image above shows the field of view when looking through 10x binoculars.

Source Code

Python 3.12 Starplot 0.17.1
from datetime import datetime
from zoneinfo import ZoneInfo

from starplot import (
    HorizonPlot,
    OpticPlot,
    PlotStyle,
    style_extensions,
    DSO,
    Observer,
    Camera,
    Binoculars,
    callables,
    _,
)

""" 
Observer Details 
--------------------------------
November 29, 2025 @ 7:11pm PT
Poway, CA (USA)
"""

tz = ZoneInfo("US/Pacific")
dt = datetime(2025, 11, 29, 19, 11, 0, 0, tzinfo=tz)
observer = Observer(
    dt=dt,
    lat=32.7678,
    lon=-117.023,
)

m45 = DSO.get(m="45")

"""
Horizon Plot
--------------------------------
"""

horizon = HorizonPlot(
    azimuth=(45, 125),
    altitude=(0, 45),
    observer=observer,
    resolution=2048,
    style=PlotStyle().extend(
        style_extensions.BLUE_NIGHT,
        style_extensions.MAP,
        style_extensions.GRADIENT_ASTRONOMICAL_TWILIGHT,
    ),
    scale=0.6,
)

horizon.stars(
    where=[_.magnitude < 2.4],
    where_labels=[_.magnitude < 2],
    style__marker__symbol="star_4",
    color_fn=callables.color_by_bv,
)

horizon.horizon(
    labels={
        90: "Looking East",
        135: None,
    }
)

horizon.optic_fov(
    ra=m45.ra,
    dec=m45.dec,
    optic=Binoculars(
        magnification=10,
        fov=65,
    ),
)

horizon.constellations(where=[_.iau_id == "ori"])

with horizon.style.dso_open_cluster as oc:
    oc.marker.color = "hsl(210, 29%, 8%)"
    oc.marker.edge_width = 4
    oc.marker.dash_capstyle = "butt"
    oc.label.font_size = 36
    oc.label.font_weight = "bold"
    oc.label.offset_x = 38
    oc.label.offset_y = 20
    horizon.dsos(where=[_.m == "45"], label_fn=lambda d: "The Pleiades (M45)")

horizon.export("horizon.svg", format="svg", padding=0.2)


"""
Optic Plot
--------------------------------
Using a Dwarf 3 smart telescope 
"""

dwarf3 = Camera(
    # the dwarf 3's sensor is really 7.7mm wide, 
    # but I cropped the image to a square so I made the sensor square
    sensor_width=4.3,  
    sensor_height=4.3,
    lens_focal_length=150,
)

p = OpticPlot(
    ra=3.7795 * 15,
    dec=24.071,
    optic=dwarf3,
    observer=observer,
    style=PlotStyle().extend(
        style_extensions.GRAYSCALE_DARK,
        style_extensions.OPTIC,
        {
            "figure_background_color": "#000",
            "border_bg_color": "#000",
        },
    ),
    resolution=2048,
    autoscale=True,
)

p.stars(
    where=[_.magnitude < 14],
    where_labels=[False],
    catalog="big-sky",
    color_fn=callables.color_by_bv,
)

p.export("plot.svg", format="svg", padding=None)