Обходной путь, который мне нравится использовать, - это добавить еще один слой geom с той же желаемой эстетикой (с альфа-каналом, установленным на 0, чтобы он не мешал полученному графику), чтобы легенда заливки зависела от этого, а не отgeom_label
слой.Иллюстрация ниже:
# instead of this
p1 <- ggplot(mtcars,
aes(wt, mpg, fill = factor(cyl),
label = rownames(mtcars))) +
geom_label()
# try this
p2 <- ggplot(mtcars,
aes(wt, mpg, fill = factor(cyl),
label = rownames(mtcars))) +
geom_label(show.legend = FALSE) +
geom_tile(alpha = 0) +
guides(fill = guide_legend(override.aes = list(alpha = 1)))
(Вы также можете использовать слой geom_point
, если предпочитаете клавиши легенды в форме точек. Формы 21-25 принять заполнить как эстетическое.)