Я хотел бы, чтобы мой текст был выровнен по центру над каждой полосой на граненом графике с уклоном.
# setup
library(ggplot2); library(tidyverse)
data("iris")
# graph
iris %>% group_by(Species) %>%
mutate(Petal_Group = ifelse(Petal.Width < median(Petal.Width), "Short", "Long")) %>%
mutate(Sepal_Group = ifelse(Sepal.Width < median(Sepal.Width), "Short", "Long")) %>%
group_by(Petal_Group, Sepal_Group, Species) %>%
summarise(mean.Sepal.Length = mean(Sepal.Length)) %>%
mutate(asterisks = "***") %>%
ggplot(aes(x = Petal_Group, y = mean.Sepal.Length)) +
geom_col(aes(fill = Species), position = "dodge") +
geom_text(aes(label=asterisks, group = Species), position = position_dodge(width = 1)) +
facet_grid(~Sepal_Group, labeller = label_parsed) +
theme(legend.position = "bottom", panel.background = element_blank(), panel.border = element_rect(colour = "black", fill = NA, size = 0.2), strip.background = element_blank())
В примере (извините, если это слишком сложно, но я работаю с чем-то вроде этого) тройные звездочки («***») не центрируются над каждой полосой. То есть звездочки над красными полосами отображаются слева, а звездочки над синими полосами — справа.
Я попытался отрегулировать hjust в geom_text
, но у меня не получилось. (И нет ли более универсального способа выравнивания по центру, что-то вроде position = "center"
?)