varias studio leyendas hacer graficos graficas como r ggplot2 boxplot significance

studio - leyendas en r



¿Cómo dibujar el boxplot con nivel significativo? (2)

Hace algún tiempo hice una pregunta sobre el dibujo de boxplot Link1 .

Tengo algunos datos con 3 grupos diferentes (o etiquetas) Por favor, descargue aquí . Puedo usar los siguientes códigos R para obtener el diagrama de caja

library(reshape2) library(ggplot2) morphData <- read.table(".//TestData3.csv", sep=",", header=TRUE); morphData.reshaped <- melt(morphData, id.var = "Label") ggplot(data = morphData.reshaped, aes(x=variable, y=value)) + + geom_boxplot(aes(fill=Label))

Aquí solo me pregunto cómo poner el nivel significativo por encima del diagrama de caja. Para aclararme, coloco una captura de pantalla de un papel aquí:


No entiendo muy bien lo que quiere decir con boxplot con un nivel significativo, pero aquí le sugiero cómo puede generar esas barras: Resolvería esto construyendo pequeños marcos de datos con las coordenadas de las barras. Aquí un ejemplo:

pp <- ggplot(mtcars, aes(factor(cyl), mpg)) + geom_boxplot() df1 <- data.frame(a = c(1, 1:3,3), b = c(39, 40, 40, 40, 39)) df2 <- data.frame(a = c(1, 1,2, 2), b = c(35, 36, 36, 35)) df3 <- data.frame(a = c(2, 2, 3, 3), b = c(24, 25, 25, 24)) pp + geom_line(data = df1, aes(x = a, y = b)) + annotate("text", x = 2, y = 42, label = "*", size = 8) + geom_line(data = df2, aes(x = a, y = b)) + annotate("text", x = 1.5, y = 38, label = "**", size = 8) + geom_line(data = df3, aes(x = a, y = b)) + annotate("text", x = 2.5, y = 27, label = "n.s.", size = 8)


Sé que esta es una pregunta antigua y la respuesta de DatamineR ya proporciona una solución para el problema. Pero recientemente creé una extensión ggplot que simplifica todo el proceso de agregar barras de significado: ggsignif

En lugar de agregar tediosamente la geom_line y annotate en su gráfico, simplemente agregue una sola capa geom_signif :

library(ggplot2) library(ggsignif) ggplot(iris, aes(x=Species, y=Sepal.Length)) + geom_boxplot() + geom_signif(comparisons = list(c("versicolor", "virginica")), map_signif_level=TRUE)

La documentación completa del paquete está disponible en CRAN .