我有一个气泡图,我正在使用ggrepel来避免标签重叠。
可复制的示例:
library(randomcoloR)
n <- nrow(iris)
palette <- unname(distinctColorPalette(n))
(p <- iris %>%
ggplot(aes(x=Sepal.Length,
y=Sepal.Width,
label = Species,
color = palette)) +
geom_point(alpha = 0.7, show.legend = FALSE) +
scale_color_manual(values=palette)
)
(r <-
p + geom_point(
aes(size = Petal.Length*Petal.Width),
pch = 21,
show.legend = FALSE,
fill = palette
) +
scale_size_continuous(range = c(2, 30)) +
geom_text_repel(segment.color = "orange",
nudge_y = 0.05,
angle = 0,
vjust = -5,
segment.size = 0.2) +
theme(legend.position = "none")
)
问题是我希望标签与气泡的颜色相同,但我却得到了圆形边框的颜色。
答案 0 :(得分:2)
您的颜色
和 fill
应该在美学 aes()
内部,然后 ggrepel
会识别它们。我的意思是 ggrepel
使用在 aes
中指定的那个
我已经稍微重写了您的代码:
库(randomcoloR)
图书馆(ggrepel)
n <-nrow(虹膜)
调色板<-unname(distinctColorPalette(n))
虹膜%>%
ggplot(aes(x = Sepal.Length,
y = Sepal.Width))+
geom_point(
aes(大小=花瓣长度*花瓣宽度,
填充=调色板,
颜色=调色板),
alpha = 0.7,
pch = 21,
show.legend = FALSE)+
scale_size_continuous(范围= c(2,30))+
geom_text_repel(aes(label =种,
颜色=调色板),
segment.color =“橙色”,
nudge_y = 0.05,
角度= 0,
vjust = -5,
segment.size = 0.2)+
主题(legend.position =“无”)