标签颜色与使用ggrepel填充气泡相同

时间:2018-11-16 14:07:24

标签: r ggplot2 ggrepel

我有一个气泡图,我正在使用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")
)

问题是我希望标签与气泡的颜色相同,但我却得到了圆形边框的颜色。

enter image description here

1 个答案:

答案 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 =“无”)
 

”在此处输入图片描述“