Yes, I know it's been around, I've also found Hadley's answer on google groups that there is no notches yet for ggplot2 boxplots. So my question is twofold: Has this changed (there's a native implementation of notches already) and if not is there something one could do about it.
I mean I do not need the notch optic, representing the confidence bounds by some shaded area that is suitably placed in another layer over the boxplot, would look nice, too.
Also added a screenshot because I heard a graphics question is never complete without the graphic
Update
In addition to the options detailed below, version 0.9.0 of ggplot2 includes this feature in geom_boxplot. Examining ?geom_boxplot reveals a notch and notchwidth argument:
+ geom_boxplot(notch = TRUE, notchwidth = 0.5)
Not elegant graphics but here is an example:
# confidence interval calculated by `boxplot.stats`
f <- function(x) {
ans <- boxplot.stats(x)
data.frame(ymin = ans$conf[1], ymax = ans$conf[2])
}
# overlay plot (upper panel below)
p <- ggplot(iris, aes(Species, Sepal.Length)) + geom_boxplot() +
stat_summary(fun.data = f, geom = "linerange", colour = "skyblue", size = 5)
p
# base graphics (lower panel below)
boxplot(Sepal.Length ~ Species, data = iris, notch = TRUE)
you can change the apparence of CI bar by tweaking the arguments of stat_summary.
crossbar version:
f <- function(x) {
ans <- boxplot.stats(x)
data.frame(ymin = ans$conf[1], ymax = ans$conf[2], y = ans$stats[3])
}
p <- ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot(width = 0.8) +
stat_summary(fun.data = f, geom = "crossbar",
colour = NA, fill = "skyblue", width = 0.8, alpha = 0.5)
p
It may be interesting that on the ggplot2-dev mailing list a post concerning notched box plots has been posted.
You can find the development page on github. The package may be installed via:
# install.packages("devtools")
library(devtools)
install_github("ggplot2")
来源:https://stackoverflow.com/questions/8134699/can-i-get-boxplot-notches-in-ggplot2