es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

enter image description here

Tags:  , ,

Answer

  1. Avatar for 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ón theme() 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ón ggplot(), lo cual asigna los dos colores a cada categoría. Luego añadimos la función scale_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 argumento legend.position especifica la ubicación de la leyenda dentro de la gráfica, en relación a las coordenadas x e y. El argumento legend.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.

Comments are closed.