Il y a quelque temps, j'ai posé une question sur le dessin de boxplot Link1 .
J'ai des données avec 3 groupes différents (ou étiquettes) Veuillez télécharger ici . Je peux utiliser les codes R suivants pour obtenir le boxplot
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))
Ici, je me demande simplement comment mettre le niveau significatif au-dessus du boxplot. Pour être clair, j'ai mis une capture d'écran tirée d'un papier ici:
Je ne comprends pas très bien ce que vous entendez par boxplot avec un niveau significatif mais voici une suggestion sur la façon dont vous pouvez générer ces barres: je résoudrais cette construction de petites trames de données avec les coordonnées des barres. Voici un exemple:
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)
Je sais que c'est une vieille question et la réponse de DatamineR fournit déjà une solution au problème. Mais j'ai récemment créé une extension ggplot qui simplifie l'ensemble du processus d'ajout de barres de signification: ggsignif
Au lieu d'ajouter fastidieusement le geom_line
et annotate
à votre tracé, vous ajoutez simplement une seule couche 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 documentation complète du paquet est disponible sur CRAN .