Agrega una leyenda al diagrama de caja en RStudio.
Utilizo el siguiente código para crear un diagrama de caja:
plot <- ggplot(WL, aes(y = wavelength, x = factor(category, level = c("A", "B")))) +
theme_bw() +
geom_boxplot(outlier.colour = "gray30", outlier.shape = 8, outlier.size = 2, lwd=1, fill = c("#C6DBEF", "#FEE391")) +
ylab(expression(lambda[(km)])) +
theme(plot.margin = unit(c(2,2,2,2), "cm"),
axis.title.x = element_blank(),
axis.title.y=element_text(size=20),
plot.title = element_text(size = 22, vjust = 2))
¿Cómo puedo agregar una leyenda? Quiero colocarla dentro de la gráfica (esquina superior derecha). Debería mostrar los dos colores y una descripción.
Estoy intentando usar legends(), pero no me funciona.
davy.ai
Para agregar una leyenda a la gráfica de caja, podemos modificar el código de ggplot añadiendo la función
scale_fill_discrete()
. Esta función nos permite especificar las etiquetas y colores para la leyenda. Luego, podemos usar la funcióntheme()
para ajustar la ubicación de la leyenda dentro de la gráfica. Aquí está el código modificado:“`{r}
library(ggplot2)
plot <- ggplot(WL, aes(y = wavelength, x = factor(category, level = c(“A”, “B”)), fill = factor(category, level = c(“A”, “B”)))) +
theme_bw() +
geom_boxplot(outlier.colour = “gray30”, outlier.shape = 8, outlier.size = 2, lwd=1) +
ylab(expression(lambda[(km)])) +
scale_fill_discrete(name = “Categoría”, labels = c(“A”, “B”),
values = c(“#C6DBEF”, “#FEE391”)) +
theme(plot.margin = unit(c(2,2,2,2), “cm”),
axis.title.x = element_blank(),
axis.title.y=element_text(size=20),
plot.title = element_text(size = 22, vjust = 2),
legend.position = c(0.9,0.9),
legend.justification = c(1,1))
plot
“`
En este código modificado, añadimos
fill = factor(category, level = c("A", "B"))
a la funciónggplot()
, lo cual asigna los dos colores a cada categoría. Luego añadimos la funciónscale_fill_discrete()
para especificar los detalles de la leyenda, incluyendo el nombre, etiquetas y colores.Finalmente, utilizamos la función
theme()
para ajustar la ubicación de la leyenda dentro de la gráfica. El argumentolegend.position
especifica la ubicación de la leyenda dentro de la gráfica, en relación a las coordenadas x e y. El argumentolegend.justification
especifica dónde anclar la leyenda dentro de la gráfica, siendo (0,0) la esquina inferior izquierda y (1,1) la esquina superior derecha.