8

ggplot2 を使用して並列ボックスプロットを作成しました。

p <- ggplot(mtcars, aes(x=factor(cyl), y=mpg))
p + geom_boxplot(aes(fill=factor(cyl)))

プロットに最小、最大、第 1 四分位、中央値、第 3 四分位で注釈を付けたいと思います。私geom_text()はそうできることを知っており、役立つかもしれませんfivenum()。しかし、私は自分がどのようにできるかを正確に理解することはできません!. これらの値は私のプロットに表示されるはずです。

4

3 に答える 3

17

私が考えることができる最も簡潔な方法は、を使用することstat_summaryです。また、ラベルを色の美学にマッピングしましたが、もちろん、必要に応じてラベルを単一の色に設定することもできます。

ggplot(mtcars, aes(x=factor(cyl), y=mpg, fill=factor(cyl))) + 
  geom_boxplot(width=0.6) +
  stat_summary(geom="text", fun.y=quantile,
               aes(label=sprintf("%1.1f", ..y..), color=factor(cyl)),
               position=position_nudge(x=0.33), size=3.5) +
  theme_bw()

上記のコードではquantile、summary 関数として使用してラベル値を取得しています。..y..関数の出力を参照しquantileます(一般に..*..、ggplot 内で計算された値を使用するための ggplot 構築です)。

ここに画像の説明を入力

于 2016-06-25T19:39:17.450 に答える
5

1 つの方法は、必要な data.frame を単純に作成し、それをgeom_textorに渡すことgeom_labelです。

library(dplyr)

cyl_fivenum <- mtcars %>% 
    group_by(cyl) %>% 
    summarise(five = list(fivenum(mpg))) %>% 
    tidyr::unnest()

ggplot(mtcars, aes(x=factor(cyl), y=mpg)) + 
    geom_boxplot(aes(fill=factor(cyl))) + 
    geom_text(data = cyl_fivenum, 
              aes(x = factor(cyl), y = five, label = five), 
              nudge_x = .5)

ラベル付き箱ひげ図

于 2016-06-24T19:53:32.253 に答える