Some time ago I asked a question about drawing boxplot Link1.
I have got some data with 3 different groups (or labels) Please down load here. I can use the following R codes to get the 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))
Here I just wondering how to put the significant level above the boxplot. To make myself clear I put a screenshot cut from a paper here:
I know that this is an old question and the answer by DatamineR already provides one solution for the problem. But I recently created a ggplot-extension that simplifies the whole process of adding significance bars: ggsignif
Instead of tediously adding the geom_line
and annotate
to your plot you just add a single layer 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)
Full documentation of the package is available at CRAN.