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_text
でy = 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
を下記のように指定します。
geom_text
のaestheticにgroup = stackしたグルーピング変数
を指定するのを忘れないでください。
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))