geom_bar使用不同的填充颜色定义边框颜色

27

我想使用geom_bar绘制一个条形图,其中我想要唯一的填充颜色,并用黑色边框包围。然而指令color="black"没有像我想的那样被解释为“黑色”,我得到了红色的边框。

library(ggplot2)
test=as.data.frame(cbind(a=c(1,1,2,3), b=1:4, c=as.character(1:4)))
ggplot(test) + geom_bar(aes(x=a, y=b, fill=c, colour="black"), stat="identity")

我该如何正确使用geom_bar函数,以使其给出正确的黑色边框?

1个回答

67
你需要将colour放在aes之外:
ggplot(test) + geom_bar(aes(x=a, y=b, fill=c), colour="black", stat="identity")

6
顺便提一句,这是因为 aes 中的所有内容都会被解释为数据中的一列。通过将颜色美学定义为“黑色”,就好像你在每一行中都有一个读取“黑色”的列,然后告诉 ggplot 根据该列中的值来进行组颜色条件判断。这就是为什么它会自动为其创建图例的原因之一。将其放在 aes 外面,你就是在告诉 ggplot 将其视为单个固定的颜色指示器 - 作为名称、十六进制或其他形式。 - DHW

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