値が0.5よりも大きいか小さいかに基づいて、ggplot棒グラフに色を割り当てようとしています。R - 条件付き値に基づいてマニュアルカラーを設定する
ここには再現可能なコードと割り当てられていないグラフがあります。以下stackoverflowの質問(Setting a conditional color by stat_summary in ggplot)に基づい
dnow <- data.frame(x=rep(c("protected areas","wildnerness areas","private lands","multi-use lands"), each=25), y=runif(100))
ggplot(dnow,aes(x=x, y=y)) + stat_summary(fun.y=mean, geom="bar", position=position_dodge(1)) +
stat_summary(fun.data = mean_se,geom="errorbar", color="grey40",position=position_dodge(1), width=.2) +
geom_hline(yintercept = 0.5) + labs(y="Mean Agreement") + theme_bw() +
theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(), axis.title.y=element_blank()) +
coord_flip()
Iは0.5を超える値を有するバーは緑色やバーになるよう手動stat_summary
でaes
を用いて0.5の閾値に基づいて色を割り当てることを試みました0.5未満の値は赤です。
コードと出力は以下のとおりです。ただし、グラフは正しく表示されません。閾値に基づいて単一のバーに色付けする代わりに、「真」または「偽」の2つのバーを作成しました。これを解決する方法がわかりません。
ggplot(dnow,aes(x=x, y=y)) + stat_summary(fun.y=mean, geom="bar", aes(fill = y > 0.5), position=position_dodge(1)) +
stat_summary(fun.data = mean_se,geom="errorbar", color="grey40",position=position_dodge(1), width=.2) +
geom_hline(yintercept = 0.5) + labs(y="Mean Agreement") + theme_bw() +
theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(), axis.title.y=element_blank()) +
scale_fill_manual(values = c('red', 'green')) + coord_flip()
再現可能な例を提供する必要があります。誰もあなたのデータなしでコードを実行することはできません – ggll
再現可能な例を含めるように編集しました。 – user2359494