所以我试图通过ggplot中的stat summary函数设置条件颜色。我正在创建ggplot中平均值的条形图,并希望设置一个条件颜色,如果平均值小于0,则将其设置为红色,如果它高于0则使其变为绿色。
IObservable
我知道我在那里需要一个ifelse声明,但我不确定条件会是什么。
答案 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())
答案 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'))
输出: