【R備忘録】ggplotで棒グラフの中心にラベルテキストを表示する

ggplotで棒グラフの中心にラベルテキストを表示する方法についてメモを残します。

ggplotではgeom_text関数でグラフ内にラベルテキストを表示することができます。
デフォルトではテキストの表示位置はyの位置になります。

library(ggplot2)
library(dplyr)
iris %>%
   count(petal = cut_number(Petal.Length, 3)) %>%
   ggplot(aes(petal, n)) +
     geom_col() +
     geom_text(aes(label = n))

これを棒の中心に表示するためにはgeom_texty = n/2と中心点を指定すればよいです。

iris %>%
   count(petal = cut_number(Petal.Length, 3)) %>%
   ggplot(aes(petal, n)) +
     geom_col() +
     geom_text(aes(label = n, y = n/2))

しかしこの方法では積み上げ棒グラフではうまくいかないです。
積み上げ棒グラフでラベルを中心に表示するためにはgeom_textのオプションpositionを下記のように指定します。

iris %>%
   count(petal = cut_number(Petal.Length, 3), Species) %>%
   ggplot(aes(petal, n)) +
     geom_col(aes(fill = Species)) +
     geom_text(aes(label = n, group = Species), position = position_stack(vjust = 0.5))

コメントを残す