# 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
)
