首页 > 解决方案 > 将特定颜色分配给 ggplot2 中的特定值

问题描述

我在 ggplot2 中有一个相当简单的问题,我无法解决。

我有以下数据框:

date country party         value
  <dbl> <chr>   <chr>         <dbl>
  2019 UK      Conservatives    15
  2019 UK      Labour           16
  2019 UK      Lib Dem          12
  2019 UK      Greens           31
  2020 UK      Conservatives    13
  2020 UK      Labour           14
  2020 UK      Lib Dem          12
  2020 UK      Greens           32

我想绘制但将​​特定颜色分配给party. 我试过这样:

p <- df%>%
ggplot( aes(x=as.factor(date), y=value, fill=party)) +
  geom_bar(stat="identity", position=position_dodge())+
  geom_text(aes(label=value), vjust=1.6, color="white",
            position = position_dodge(0.9), size=3.5)+
  theme_minimal()

接着:

p +   scale_colour_manual(values = c("Conservatives" = "cyan",
                                 "Greens" = "chartreuse3",
                                 "Labour" = "brown3",
                                 "Lib Dems" = "darkgoldenrod1")) #these are the colours I want to assign each level of `party`. 

情节我出去

但是正如您所看到的,我并没有实际打印出我选择的颜色,而是得到了与刚刚调用p.

知道为什么吗?谢谢!

标签: rggplot2plotcolorstidyverse

解决方案


尝试scale_fill_manual代替scale_colour_manual

p + scale_fill_manual(values = c("cyan", "chartreuse3", "brown3", "darkgoldenrod1")) 

推荐阅读