如何使用ggplot对条形图中的正负条进行颜色编码

时间:2018-01-26 14:20:58

标签: r ggplot2 bar-chart

我有以下数据:

df
    rowname   repo
1   revrepo  0.888
2  bankrate  0.402
3       CRR  0.250
4  Callrate  0.723
5       WPI  0.049
6       GDP -0.318
7       FED  0.110
8     width  0.209
9       nse  0.059
10      usd  0.185

我正在绘制如下所示的条形图:

df %>% mutate(rowname = factor(rowname, levels = rowname[order(repo)])) %>%
ggplot(aes(x = rowname, y = repo)) +
geom_bar(stat = "identity") +
ylab("Correlation with repo") +
xlab("Independent Variable")

我得到以下情节: ggplot bar plot

我想将负条显示为红色,将所有正条显示为灰色。

1 个答案:

答案 0 :(得分:1)

撰写Andrey Kolyadin评论作为解决方案,以使其停止在未回答的问题中出现:

geom_bar(aes(fill = repo < 0), stat = "identity") + scale_fill_manual(guide = FALSE, breaks = c(TRUE, FALSE), values=c("gray", "red"))