El diagram H-R se observa que las estrellas no se distribuyen al azar sino que se agrupan en el espacio según su magnitud luminosa y su temperatura. Las estrellas, además, evolucionan y cambian su luminosidad y temperatura a lo largo de su vida. De acuerdo con la etapa evolutiva en la que se encuentren, ocupan una zona en el diagrama H-R. A partir de él se puede inferir la luminosidad, la magnitud, el tipo espectral o color, la composición química y la etapa de evolución de una estrella.
Importamos las librerias a usar
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
Paso 1: Importamos los datos y asignamos los ejes del plano cartesiano
data0 = pd.read_csv("data/supergiants.txt", header=0, delim_whitespace=True)
x0 = data0.iloc[:,1]
y0 = data0.iloc[:,0]
a0 = data0.iloc[:,2]
Graficamos para cada carpeta que contiene los datos
fig, ax0 = plt.subplots()
for i in range(len(a0)):
ax0.scatter(x0[i],y0[i], s=a0[i])
ax0.invert_xaxis()
plt.xlabel('Temperatura (ºK)')
plt.ylabel('Luminosidad')
plt.title('Diagrama de Hertzsprung-Russell')
plt.show
<function matplotlib.pyplot.show(close=None, block=None)>
Hacemos lo mismo para los siguientes datos
data1 = pd.read_csv("data/ms.csv", header=0)
x1 = data1.iloc[:,1]
y1 = data1.iloc[:,0]
a1 = data1.iloc[:,2]
fig, ax1 = plt.subplots()
for i in range(len(a1)):
ax1.scatter(x1[i],y1[i], s=a1[i])
ax1.invert_xaxis()
plt.xlabel('Temperatura (ºK)')
plt.ylabel('Luminosidad')
plt.title('Diagrama de Hertzsprung-Russell')
plt.show
<function matplotlib.pyplot.show(close=None, block=None)>
data2 = pd.read_csv("data/giants.txt", header=0, delim_whitespace=True)
x2 = data2.iloc[:,1]
y2 = data2.iloc[:,0]
a2 = data2.iloc[:,2]
fig, ax2 = plt.subplots()
for i in range(len(a2)):
ax2.scatter(x2[i],y2[i], s=a2[i])
ax2.invert_xaxis()
plt.xlabel('Temperatura (ºK)')
plt.ylabel('Luminosidad')
plt.title('Diagrama de Hertzsprung-Russell')
plt.show
<function matplotlib.pyplot.show(close=None, block=None)>
data3 = pd.read_csv("data/dwarfs.csv", header=0)
x3 = data3.iloc[:,1]
y3 = data3.iloc[:,0]
a3 = data3.iloc[:,2]
fig, ax3 = plt.subplots()
for i in range(len(a3)):
ax3.scatter(x3[i],y3[i], s=a3[i])
ax3.invert_xaxis()
plt.xlabel('Temperatura (ºK)')
plt.ylabel('Luminosidad')
plt.title('Diagrama de Hertzsprung-Russell')
plt.show
Paso 2: Unimos todos los datos
x = pd.concat([x0,x1,x2,x3])
y = pd.concat([y0,y1,y2,y3])
a = pd.concat([a0,a1,a2,a3])
**Paso 3:** Gracifamos todos los datos en uno solo
fig, ax = plt.subplots()
for j in range(90):
ax.scatter(x[j],y[j], s=a[j])
ax.invert_xaxis() # Invertimos el eje
plt.xlabel('Temperatura (ºK)')
plt.ylabel('Luminosidad')
plt.title('Diagrama de Hertzsprung-Russell')
plt.show