ggplot: Как сохранить цвета маркеров в легенде, но скрыть цвета текста?

Я хочу изменить цвет некоторых, но не всех, ярлыков, чтобы они выделялись на заполненном графике. Я добился этого, используя следующее:

df <- data.frame("x"=1:10, "y"=1:10, "dir"=rep(c("a", "b"), 5))

library(ggplot2)
library(ggrepel)
ggplot(data=df, aes(x, y, color=dir)) +
  geom_point(show.legend=TRUE) +
  geom_text_repel(data=df[1:5, ], 
                  aes(x=x, y=y, 
                      color=factor(df$dir[1:5], labels=c("text a", "text b")), 
                      label=dir), 
                  size=2.5, force=15, show.legend=FALSE) + 
  scale_colour_manual(values=c("salmon", "black", "salmon", "darkturquoise"))

Как я могу сделать это, скрывая цветовую схему метки в легенде (т.е. избавиться от текста a и текста b на графике ниже)? show.legend=FALSE не похоже на работу, и я хочу сохранить легенду.

В этом примере я использую geom_text_repel, но я думаю, что это то же самое для geom_text,

Спасибо!

1 ответ

Решение

Вы также можете указать разрывы вручную, заменив последнюю строку на

scale_colour_manual(breaks = c("a", "b"), values = c("salmon", "black", "salmon", "darkturquoise"))

Другие вопросы по тегам