Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions Graficas3_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

# Crear carpeta para guardar gráficas
output_folder = "graficas_3_2"
os.makedirs(output_folder, exist_ok=True)

# Cargar archivo CSV
df = pd.read_csv("docs/files/datos.csv")

# Diccionario de variables y sus distribuciones con parámetros
modelos = {
'variable_1': {
'dist': stats.halfnorm,
'params': (0.0022181829218035, 3.4052904159672317)
},
'variable_2': {
'dist': stats.lognorm,
'params': (0.4776347930822498, 0.9672797396860469, 1.036331010527072)
},
'variable_3': {
'dist': stats.gumbel_r,
'params': (2.361798203506733, 0.1461273648800006)
}
}

# Estilo visual
sns.set(style="whitegrid")

# Recorrer cada variable y generar su gráfica
for var, modelo in modelos.items():
datos = df[var].dropna()

# Obtener distribución y parámetros
dist = modelo['dist']
params = modelo['params']

# Crear figura
plt.figure(figsize=(10, 6))
sns.histplot(datos, bins=30, stat='density', color='skyblue', label='Histograma')

# Rango de x para la función de densidad
x = np.linspace(min(datos), max(datos), 338800)
pdf = dist.pdf(x, *params)
plt.plot(x, pdf, 'r-', lw=2, label=f'{dist.name} ajustada')

# Etiquetas y estilo
plt.title(f'{var} - Histograma y ajuste de {dist.name}')
plt.xlabel(var)
plt.ylabel('Densidad')
plt.legend()
plt.tight_layout()

# Guardar imagen
filename = os.path.join(output_folder, f"{var}_histograma.png")
plt.savefig(filename)
plt.close()

print(f"Gráficas guardadas en la carpeta: {output_folder}")
42 changes: 42 additions & 0 deletions Histogramas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Importa la biblioteca 'os' para trabajar con rutas de archivos y carpetas del sistema
import os

# Importa la biblioteca 'pandas' para manipulación y análisis de datos
import pandas as pd

# Importa 'pyplot' de la biblioteca 'matplotlib' para crear gráficos
import matplotlib.pyplot as plt

# Importa 'seaborn' para mejorar la apariencia visual de los gráficos
import seaborn as sns

# Obtiene la ruta del directorio donde se encuentra este script (.py)
base_dir = os.path.dirname(__file__)

# Construye la ruta completa hacia el archivo datos.csv que está dentro de la subcarpeta "files"
file_path = os.path.join(base_dir, 'files', 'datos.csv')

# Lee el archivo CSV y lo guarda como un DataFrame (estructura de tabla)
df = pd.read_csv(file_path)

# Configura el estilo visual de los gráficos con fondo blanco y cuadrícula
sns.set(style="whitegrid")

# Lista de nombres de columnas numéricas que se van a graficar
variables = ['variable_1', 'variable_2', 'variable_3']

# Crea una figura con 1 fila y 3 subgráficas (una para cada variable), tamaño 18x5 pulgadas
fig, axes = plt.subplots(1, 3, figsize=(18, 5))

# Itera sobre cada par de eje (ax) y variable para graficar los histogramas
for ax, var in zip(axes, variables):
ax.hist(df[var], bins=20, color='skyblue', edgecolor='black') # Histograma con 20 barras, color azul claro
ax.set_title(f'Histograma de {var}') # Título del gráfico
ax.set_xlabel(var) # Etiqueta del eje X
ax.set_ylabel('Frecuencia') # Etiqueta del eje Y

# Ajusta automáticamente los espacios entre los subgráficos
plt.tight_layout()

# Muestra los gráficos en una ventana emergente
plt.show()
1 change: 1 addition & 0 deletions docs/analisis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

Empty file added docs/conclusiones.md
Empty file.
Loading