在ggplot中通过stat_summary设置条件颜色

时间:2016-07-04 15:54:34

标签: r ggplot2 colors

所以我试图通过ggplot中的stat summary函数设置条件颜色。我正在创建ggplot中平均值的条形图,并希望设置一个条件颜色,如果平均值小于0,则将其设置为红色,如果它高于0则使其变为绿色。

IObservable

我知道我在那里需要一个ifelse声明,但我不确定条件会是什么。

2 个答案:

答案 0 :(得分:2)

如果您在使用ggplot之前为绘图准备数据会更容易,对于您的情况,事先汇总数据然后使用geom_bar应该相当简单:

dataSum <- aggregate(Value ~ Name, data, FUN = 'mean')
ggplot(dataSum, aes(x = Name, y = Value, fill = (Value > 0))) + 
       geom_bar(stat = "identity", position = 'dodge') + 
       scale_fill_manual(labels = c("FALSE" = "Less than zero", "TRUE" = "Above zero"), 
                         values = c('red', 'green')) + 
       theme(legend.title = element_blank())

enter image description here

答案 1 :(得分:2)

# Prepare data: split the data into subsets and compute summary using aggregate
  data <- aggregate(Value ~ Name, data, FUN = 'mean')
# Plot
  g <-  ggplot( data , aes(x=Name, y=Value, group=Name)) + 
  # Add condition for colors aes(fill = Value > 0 )
  stat_summary(fun.y="mean", geom="bar",aes(fill = Value > 0 ))
  g + scale_fill_manual(values = c('red', 'green'))

输出:

enter image description here