23

我正在使用 geom_bar 在 ggplot2 中生成一些基本的条形图。我希望在每个条形上方以相同颜色列出数字,并且我正在使用 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. 有一次我决定,如果我可以让文本变黑,我会接受它并继续前进,但是当我这样做时,定位失败并且将两个文本居中以获得一个“选项”,而不是将文本保持在它们各自的上方酒吧。

    geom_text(aes(label=Count), color="black", position=position_dodge(width = 0.9), vjust=-0.40)

  2. 然后我尝试了这个:

    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 版本 3.2.3 (2015-12-10)
平台:x86_64-apple-darwin13.4.0 (64-bit)
运行于:OS X 10.11.6 (El Capitan)
[1] ggplot2_2.1.0

和平。

4

1 回答 1

31

尝试将colour选项添加到geom_text美学映射并将您的自定义颜色分配给两个因子Type级别scale_colour_manual

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"))
于 2017-01-09T09:05:21.397 回答