R barplot某些酒吧的颜色不同

时间:2016-05-12 07:55:35

标签: r

我正在处理R中的数据框,看起来像这样

test <- data.frame(c(1:4),c(5:8),c(9:12),c(13:16))
names(test) <- c("position","totalA","totalB","totalC")

不,我想创建一个堆积的条形图,其中所有条形图都是黑色的,除了1个位置值,我想要'totalA','totalB'和'totalC'的不同颜色

这就是我创建条形图

所做的
test.melt <- melt(test, id = "position")
ggplot(test.melt, aes(x=position, y=value, fill=variable))+geom_bar(stat="identity")+scale_fill_manual(values=grey.colors(3))

enter image description here

所以现在所有的条都是有条件的颜色,但这应该只是当位置== 2时的情况。其余的条都应该是黑色。

编辑:我只需要使用barplot()函数而不是ggplot()来执行此操作。

我将它用于条形图

test.transposed <- setNames(data.frame(t(test[,-1])), test [,1])
barplot(as.matrix(test.transposed))

但是,我现在怎样才能应用这种条件着色?

2 个答案:

答案 0 :(得分:1)

您可以在数据中准备所需的群组,如下所示:

test.melt$colour <- ifelse(test.melt$position == 2, 
                           as.character(test.melt$variable), "All other")
library(ggplot2)
ggplot(test.melt, aes(x=position, y=value, fill=colour))
  + geom_bar(stat="identity")
  + scale_fill_manual(values=c( "#000000", grey.colors(3)))

将产生:

Default colours to black

答案 1 :(得分:0)

您可以在scale_fill_manual中指定颜色:scale_fill_manual(values = c("#000000", "#dddddd", "#000000"))

ggplot(test.melt, aes(x=position, y=value, fill=variable))+geom_bar(stat="identity") + scale_fill_manual(values = c("#000000", "#dddddd", "#000000"))