少し前に、boxplot Link1 の描画について質問しました。
3つの異なるグループ(またはラベル)のデータがあります ここからダウンロードしてください 。以下のRコードを使用して箱ひげ図を取得できます
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))
ここでは、箱ひげ図の上に重要なレベルを配置する方法を考えています。自分自身を明確にするために、紙からスクリーンショットをカットしました。
有意なレベルのボックスプロットの意味がよくわかりませんが、ここではこれらのバーを生成する方法を提案します。次に例を示します。
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)
これは古い質問であり、DatamineRの回答はすでにこの問題に対する1つの解決策を提供していることを知っています。しかし、最近、有意バーを追加するプロセス全体を簡素化するggplot-extensionを作成しました。 ggsignif
面倒なことにgeom_line
とannotate
をプロットに追加する代わりに、単一のレイヤー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)
パッケージの完全なドキュメントは [〜#〜] cran [〜#〜] で入手できます。