TP : Diagramme Hertzsprung–Russell (HR) des Pléiades

Objectifs pédagogiques


Tableau de données des Pléiades

Étoile Température (K) Luminosité (L☉)
Alcyone124002400
Atlas13800920
Electra12000940
Maia12000660
Merope10400630
Taygeta9500500
Pleione11000190
Celaeno10200110

Programme Python


import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

# Noms des étoiles
noms = ["Alcyone", "Atlas", "Electra", "Maia", "Merope",
        "Taygeta", "Pleione", "Celaeno"]

# Températures (K)
temperatures = [12400, 13800, 12000, 12000, 10400,
                9500, 11000, 10200]

# Luminosités (L☉)
luminosites = [2400, 920, 940, 660, 630,
               500, 190, 110]

# Classes spectrales
classes = ["B","B","B","B","B","A","B","B"]

# Couleurs associées
couleurs = {
    "O": "blue",
    "B": "deepskyblue",
    "A": "cyan",
    "F": "green",
    "G": "yellow",
    "K": "orange",
    "M": "red"
}

plt.figure(figsize=(8,6))

# Tracé des points
for i in range(len(noms)):
    plt.scatter(temperatures[i], luminosites[i],
                color=couleurs[classes[i]])
    plt.text(temperatures[i], luminosites[i], noms[i], fontsize=8)

# Échelles HR
plt.xscale("log")
plt.gca().invert_xaxis()
plt.yscale("log")
plt.xlim(30000, 3000)   # HR : températures décroissantes vers la droite
plt.ylim(0.01, 100000)  # Luminosité en échelle log


plt.xlabel("Température (K)")
plt.ylabel("Luminosité (L☉)")
plt.title("Diagramme HR – Amas des Pléiades")

# Légende
patches = [mpatches.Patch(color=couleurs[c], label=c) for c in couleurs]
plt.legend(handles=patches, title="Classe spectrale")

plt.show()
  

Essayer le programme sur Capytale

Cliquez ici pour ouvrir le programme dans Capytale : Lancer le programme sur Capytale

(Remplace ce lien par ton code Capytale.)

Consignes pour les élèves

  1. Vérifiez que les listes temperatures et luminosites correspondent au tableau.
  2. Exécutez le programme pour obtenir le diagramme HR.
  3. Exportez le diagramme en PNG et insérez-le dans votre compte rendu.
  4. Supprimez :
    • plt.xscale("log")
    • plt.gca().invert_xaxis()
    puis observez les changements.
  5. Expliquez pourquoi les étoiles chaudes sont bleues et les froides rouges.

Fin du TP