ggplot2中的geom_bar图上的边框颜色错误

时间:2018-07-23 19:25:45

标签: r ggplot2

我正在按采样周绘制条形图,记录各种长度类别的鱼的数量。
这是一个叫做Chin的数据库:

Trib    Week   Size2  
MM      21     90
SM      21     80
SM      22     100
NM      22     8p

我已将Size2转换为名为Fork的因数,并将周转换为称为period的因数。

这是我的代码:

period<-as.factor(Chin$week)
Chin1<-cbind(Chin, period)
Fork<-as.factor(Chin$Size2)

g <- ggplot(Chin1, aes(period))
g + geom_bar(aes(fill=Fork))+ theme(axis.text.x = element_text(angle=65, 
 vjust=0.6)) +  theme_bw() +scale_fill_manual(values=c("white","gray90", 
"gray82", "gray61", "gray48", "black"))

这很好用,除了在条形图或图例的元素周围没有边框

Chart with no borders

但是当我在此行中添加colour="black"以获得黑色边框时:

g + geom_bar(aes(fill=Fork, colour="black"))+ theme(axis.text.x 
element_text(angle=65, vjust=0.6))....

相反,无论选择什么颜色,我都会得到一个带有新图例的红色边框,其中包含一个名为"black"的项目。图例项的名称会更改(即蓝色,绿色),但边框颜色保持红色,而图例项的填充仍为黑色。见下文。我知道这肯定是一个简单的愚蠢错误,但我无法弄清楚。有任何想法吗?预先感谢!

Chart with red borders

1 个答案:

答案 0 :(得分:3)

colour="black"移到aes()语句之外。 aes()使用数据中的变量来创造美感,因此您要说的是将颜色设为不存在的“黑色”列的基础。

还找到了here