Construirea diagramei Hertzsprung-Russell | R-BLOGGERS

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe John Russellși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)


Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.

Timp de câteva vineri în fiecare an, predau un curs în American Museum of Natural History’s Masters of Arts in Program de predare pentru a aplica și a continua să mă gândesc la munca mea ca profesor de știință a Pământului și educator profesor. În acest curs, am predispicat un curs de sisteme spațiale cu un astrofizician la Musem. În ultimii ani, acesta a fost cu incredibilul Dr. Jackie Faherty, un educator și astrofizician al muzeului a cărui lucrare se concentrează pe câmpurile piticilor și exoplanetelor maro.

Cu câțiva ani în urmă, muzeul a primit o subvenție pentru a încorpora gândirea de calcul în cursurile noastre de educație științifică. După multe discuții despre ceea ce credem că gândirea calculațională înseamnă de fapt, Jackie a adus Glue, o aplicație bazată pe Python, concepută pentru vizualizări exploratorii ușoare ale seturilor de date mari. Astfel, ea a conceput un set de exerciții care să le permită elevilor să exploreze bazele de date exoplanete pentru a înțelege diferențele dintre sistemele exoplanet și propriile noastre și atingerea unor subiecte precum prejudecățile în măsurare, calcule ale unei variabile printr-o interfață de gui ușor de abordat.

În acest an, am recreat exercițiile din R. Favoritul meu este să recreez diagrama Hertzsprung-Russell. În clasă, o recreează folosind o bază de date Exoplanet, dar mai jos, recreăm folosind un catalog ușor mai mare de stele, care include stele pe care nu le -am găsit încă exoplanete în jur.

Încărcarea datelor și găsirea marjelor potrivite

Setul de date este puțin mare, așa că mă tem că va trebui să -l descărcați singur. Am folosit cea mai recentă versiune a bazei de date stelare Hyg (Hipparcos, Yale, Gliese), așa cum este păstrat aici. Pentru a privi datele, se pare că stelele au o distanță maximă care creează o mulțime de valori, așa că, dacă recreezi graficul folosind acest set de date, vă rugăm să utilizați același filtru în codul meu.

Acum să -l graficăm. Cel mai simplu mod de a complota o diagramă HR este cu indicele de culoare, care este, de asemenea, legat de temperatura suprafeței și de tipul spectral, pe axa x și luminozitatea, care este legată și de mărimea absolută1 pe axa y.

Cod în r
library(tidyverse)
# let's not work in scientific notation unless we specify it
options(scipen = 999)
 
stars <- read_csv("data/hygdata_v41.csv") |> 
    filter(dist < 100000)

p <-stars |> 
  ggplot(aes(x=ci, y=lum)) +
  geom_point(size=0.02) +
  scale_y_log10() +
  theme_bw()

p

Arată cam ca o diagramă HR

Vreau să folosesc histograme pentru a -mi da seama unde ar trebui să fie limitele acestui lucru și pentru a înțelege distribuția. Pentru a face asta, voi folosi excelentul ggExtra Pachet, unde puteți adăuga în parcele marginale.

Cod în r
library(ggExtra)

ggMarginal(p,
  type="histogram"
)

Axa y pare să fie destul de bună, dar axa X ar putea să se micșoreze la un indice de culoare cu maximum 3.

Obținerea unor culori în acest complot

Majoritatea diagramei HR se alungă de culoarea stelelor, pe care ar trebui să le putem face și noi. Să încercăm scale_color_gradient2care este conceput pentru palete divergente, din RColorBrewer.

Cod în r
library(RColorBrewer)

stars |> 
  ggplot(aes(x=ci, y=lum,color=ci)) +
  geom_point(size=0.02, show.legend=FALSE) +
  scale_y_log10() +
  scale_x_continuous(limits=c(-.5,2.25))+
  scale_color_gradient2(low= "blue", mid="white", high="red",midpoint=0.75) +
  theme_minimal() +
  theme(panel.background=element_rect(fill="black"),
        panel.grid=element_blank()) +
  labs(title="Hertzsprung-Russell Diagram",
       y="Luminosity (in comparison to Sun)",
       x="Color Index (blue magnitude - visual magnitude)")

Citare

Citarea Bibtex:

@online{russell2025,
  author = {Russell, John},
  title = {Constructing the {Hertzsprung-Russell} {Diagram}},
  date = {2025-03-02},
  url = {https://drjohnrussell.github.io/posts/2025-03-02-hertzsprung-russell/},
  langid = {en}
}

Pentru atribuire, vă rugăm să citați această lucrare ca:

Russell, Ioan. 2025. „Construirea diagramei Hertzsprung-Russell.” 2 martie 2025.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.