# Cargar la base de datos ChickWeight
data("ChickWeight")

# Mostrar las primeras filas de la base de datos para visualizar los datos
head(ChickWeight)
##   weight Time Chick Diet
## 1     42    0     1    1
## 2     51    2     1    1
## 3     59    4     1    1
## 4     64    6     1    1
## 5     76    8     1    1
## 6     93   10     1    1
# Filtrar los datos por dieta
dieta1 <- ChickWeight[ChickWeight$Diet == 1, ]
dieta2 <- ChickWeight[ChickWeight$Diet == 2, ]
dieta3 <- ChickWeight[ChickWeight$Diet == 3, ]
dieta4 <- ChickWeight[ChickWeight$Diet == 4, ]

# Crear factores de tiempo para cada dieta
factor1 <- factor(dieta1$Time)
factor2 <- factor(dieta2$Time)
factor3 <- factor(dieta3$Time)
factor4 <- factor(dieta4$Time)

# Calcular los promedios de los pesos por tiempo para cada dieta
promedios_dieta1 <- tapply(dieta1$weight, dieta1$Time, mean)
promedios_dieta2 <- tapply(dieta2$weight, dieta2$Time, mean)
promedios_dieta3 <- tapply(dieta3$weight, dieta3$Time, mean)
promedios_dieta4 <- tapply(dieta4$weight, dieta4$Time, mean)

# Convertir los resultados a vectores numéricos
vector_promedios_dieta1 <- as.numeric(promedios_dieta1)
vector_promedios_dieta2 <- as.numeric(promedios_dieta2)
vector_promedios_dieta3 <- as.numeric(promedios_dieta3)
vector_promedios_dieta4 <- as.numeric(promedios_dieta4)

# Instalar y cargar ggplot2 si es necesario
if (!require(ggplot2)) {
  install.packages("ggplot2")
  library(ggplot2)
}
## Cargando paquete requerido: ggplot2
# Crear un data frame con los promedios y los tiempos
df <- data.frame(
  Time = rep(as.numeric(levels(factor1)), times = 4),
  Weight = c(vector_promedios_dieta1, vector_promedios_dieta2, vector_promedios_dieta3, vector_promedios_dieta4),
  Dieta = rep(c("Dieta1", "Dieta2", "Dieta3", "Dieta4"), each = length(vector_promedios_dieta1))
)

# Crear el gráfico de líneas con ggplot2
ggplot(df, aes(x = Time, y = Weight, color = Dieta, shape = Dieta)) +
  geom_line() +                          # Línea de la gráfica
  geom_point(size = 2) +                 # Puntos de la gráfica
  labs(
    title = "Crecimiento promedio en función de la dieta",  # Título del gráfico
    x = "Días",                                            # Etiqueta del eje X
    y = "Pesos (gramos)",                                  # Etiqueta del eje Y
    color = "Leyendas"                                     # Etiqueta de la leyenda de colores
  ) +
  theme_minimal() +                                       # Tema minimalista
  theme(
    plot.title = element_text(hjust = 0.5),               # Centrando el título
    legend.title = element_text(size = 10),               # Tamaño del título de la leyenda
    legend.text = element_text(size = 8)                  # Tamaño del texto de la leyenda
  )