hjust
обычно колеблется от 0 до 1, при этом 0,5 выравнивается по центру. Я бы порекомендовал установить hjust = 0
, а затем с помощью регуляторов nudge
настроить величину в координатах данных. Например:
ggplot(data.frame(a = letters[1:3], b = 1:3), aes(x = a, y = b)) +
geom_col() +
geom_text(aes(label = b^3), hjust = 0, nudge_y = 0.05) +
coord_flip()
Причина, по которой ваш hjust
ведет себя не так, как вы ожидаете: текст «привязан» к координате данных. Если вы установите hjust = 0
, он будет выровнен по левому краю с этой точкой в качестве поля При hjust = 0.5
центр текста будет этой точкой, а hjust = 1
будет выровнен по правому краю с этой точкой в качестве поля. Шкала является линейной, и более длинный текст должен перемещаться дальше, чем более короткий текст, к выравниванию по левому и правому краям на go, а когда вы на go превышаете интервал (0, 1), он продолжается с той же скоростью.