Цветовая легенда с geom_text_repel и geom_point
Как можно раскрасить точки рядом с метками легенды? scale_color_manual или scale_fill_manual не работают. Также как я могу заменить точки в легенде на квадраты? благодаря
set.seed(1)
library(ggplot2)
library(ggrepel)
df <- data.frame(n=runif(8),y=1:8,l=letters[1:8],col=palette.colors(8))
p_vol <- ggplot(df, aes(n, y, label = l)) +
geom_point(aes(fill=l),color = df$col) +
geom_text_repel(col=df$col)+theme_classic()
print(p_vol)
2 ответа
Вам нужно будет включить аргумент цвета в эстетический вызов в
geom_point()
, установка
color = l
. Тогда вы можете использовать
scale_color_manual
использовать желаемые цвета.
p_vol <- ggplot(df, aes(n, y, label = l)) +
geom_point(aes(fill=l, color = l)) +
geom_text_repel(col=df$col) +
theme_classic() +
scale_color_manual(values = df$col)
Также вы можете попробовать включить
fill
из
aes()
используя цвета, которые есть в вашем фрейме данных. Здесь код, я использовал разные цвета, потому что у меня недостаточно знаний о функции
palette.colors
у вас были цвета. Также используя
scale_fill_identity()
берет цвета непосредственно из переменной в ваших данных (те, которые определены в
fill
). Вот код:
set.seed(1)
library(ggplot2)
library(ggrepel)
library(RColorBrewer)
df <- data.frame(n=runif(8),y=1:8,l=letters[1:8],col=rainbow(8))
#Plot
ggplot(df, aes(n, y, label = l,color=l,fill=col)) +
geom_point() +
geom_text_repel(show.legend = F)+theme_classic()+
scale_fill_identity()
Вывод: