У меня есть следующий фрейм данных, в котором я предсказываю y как функцию возраста и пола:
df = data.frame(
age = c('old', 'old', 'young', 'young'),
gender = c('male', 'female', 'male', 'female'),
y = 1:4)
и соответствующий график:
ggplot(df, aes(x=age, y=y, fill = gender)) +
geom_col(position = 'dodge')
Я хотел бы контролировать внешний вид поля легенды. В частности, я хотел бы, чтобы вся коробка была выровнена по правому краю (а не по левому). Итак, ключевая легенда должна появиться с правой стороны коробки, а слева от нее должны быть метки.
Я знаю аргумент legend.text.align функции theme(), но он контролирует только расстояние между клавишами и соответствующей меткой.
Любая идея о том, как вернуться к выравниванию?





Вы можете использовать guide_legend(label.position = ... для настройки положения метки, меток и т. д.
ggplot(df, aes(x=age, y=y, fill = gender)) +
geom_col(position = 'dodge') +
guides(fill = guide_legend(# title.hjust = 1, # adjust title if needed
label.position = "left",
label.hjust = 1)
Для получения дополнительной информации: https://ggplot2.tidyverse.org/reference/guide_legend.html
Не могли бы вы объяснить, почему legend.text и legend.title находятся в theme(), а guide_legend() — в guides()?