如何在R中的ggplot2包中更改geom_text的字体颜色?

28

我正在使用ggplot2生成一些基本的柱状图,其中使用了geom_bar。我希望数字以相同的颜色显示在每个柱子上方,并且我使用geom_text实现此功能。我使用scale_fill_manual(values = alpha(c("#000000", "#FF5733")))填充柱子。我遇到的问题是,柱子上方的文本没有改变为自定义颜色,而是保留了默认的R颜色。

library(ggplot2)
Area <- c("Option1", "Option2", "Option3")
Count <- c(193, 56, 4,240, 10, 25)
Type <- c("car", "car", "car", "bike", "bike", "bike")
p <- data.frame(Area, Count, Type)

ggplot(p, aes(x=Area, y=Count, color=Type)) + 
        geom_bar(stat="identity", position="dodge", aes(fill=Type), color="black")  +
        scale_fill_manual(values = alpha(c("#000000", "#FF5733"))) +
        geom_text(aes(label=Count), position=position_dodge(width = 0.9), vjust=-0.40)

我尝试了以下方法但都无效:
  1. 我曾经决定只要文本是黑色,我就接受并继续进行,但当我这样做时,定位失败,并将单个“Option”的两个文本居中显示,而不是将文本放在各自的条形上。
     geom_text(aes(label=Count), color="black", position=position_dodge(width = 0.9), vjust=-0.40)

然后我尝试了这个:
    geom_text(aes(label=Count, color=c("#000000", "#FF5733")), position=position_dodge(width = 0.9), vjust=-0.40)

我对这个调整出现了以下错误:
错误:美学必须是长度为1或与数据相同(6):标签,颜色,x,y。
我认为这是因为有6个条形图,但只指定了2种颜色。然而,当我再添加4次颜色时,它离我想要的更远了。
我试图发布图片,但我还没有足够的积分!抱歉!
感谢提供的任何和所有帮助。我正在运行RStudio:
R version 3.2.3 (2015-12-10)  
Platform: x86_64-apple-darwin13.4.0 (64-bit)  
Running under: OS X 10.11.6 (El Capitan)  
[1] ggplot2_2.1.0

和平。

1个回答

41

尝试在 geom_text 美学映射中添加 colour 选项,并使用 scale_colour_manualType 的两个因子级别分配自定义颜色。

ggplot(p, aes(x=Area, y=Count, color=Type)) + 
        geom_bar(stat="identity", position="dodge", aes(fill=Type), color="black")  +
    scale_fill_manual(values = alpha(c("#000000", "#FF5733"))) +
    geom_text(aes(label=Count, colour=Type), 
             position=position_dodge(width = 0.9), 
             vjust=-0.40) +
    scale_colour_manual(values=c("#000000", "#FF5733"))

1
这很棒,解决了问题。我没有想到要手动设置比例尺颜色。 - Jess

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接