1. ホーム
  2. r

ボックスプロットで平均値を表示

2023-08-09 14:35:57

質問

この箱ひげ図では平均を見ることができますが、どのようにすればすべての箱ひげ図の平均に対して数値も表示させることができるのでしょうか?

 ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() +
     stat_summary(fun.y=mean, colour="darkred", geom="point", 
                           shape=18, size=3,show_guide = FALSE)

どのように解決するのですか?

まず、群平均を計算するには aggregate :

means <- aggregate(weight ~  group, PlantGrowth, mean)

このデータセットは geom_text :

library(ggplot2)
ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() +
  stat_summary(fun=mean, colour="darkred", geom="point", 
               shape=18, size=3, show.legend=FALSE) + 
  geom_text(data = means, aes(label = weight, y = weight + 0.08))

ここで + 0.08 は、平均を表す点の上にラベルを配置するために使われます。


別のバージョンでは ggplot2 :

means <- aggregate(weight ~  group, PlantGrowth, mean)

boxplot(weight ~ group, PlantGrowth)
points(1:3, means$weight, col = "red")
text(1:3, means$weight + 0.08, labels = means$weight)