0
私はいくつかのデータをグラフ化しており、閾値に基づいて特定の列をハイライトしたいが、geom_colは色をランダムに割り当てるように見える。ggplot2 geom_col一見無作為な結果を与える塗りつぶし
dass21_scores_plot %>%
ggplot(aes(dassId, score, label=score))
+ geom_col(fill =
ifelse(dass21_scores_plot$score == -1, "blue1",
ifelse(dass21_scores_plot$measure == "Depression Baseline" && dass21_scores_plot$score > 27, "red",
ifelse(dass21_scores_plot$measure == "Anxiety Baseline" && dass21_scores_plot$score > 19, "red",
ifelse(dass21_scores_plot$measure == "Stress Baseline" && dass21_scores_plot$score > 33, "red", "green4")))))
+ geom_text(aes(label = ifelse(score > -1, as.integer(score), ''), vjust = ifelse(score > 21, 2, -1)), size = 4)
+ theme(axis.text.x = element_text(size = 10, angle = 90))
+ facet_wrap(~measure, ncol = 4)
これは私が得るものです。
同じ特性を持つ偶数列が異なって充填されているので、これは私には意味の全体の多くを作成しません。列にはグラフ化されていない属性はありません。私が行方不明になっていることは明らかですか?
クイック推測は:スワップアウトしようと、すべての '' &&さんだけのために '&'
は、ここに私の新しいコードです。 '&'は要素ごとの比較を行い、 '&&'はベクトルの最初の要素だけを見ます。 – Marius
私はそれを与えましたが、残念ながら変更はありません。 –
(1)ggplot呼び出しの中で複雑なデータ操作を行うのは悪い考えです。何かが間違っているとデバッグが非常に難しくなります。 (2)あなたは 'aes()'の中に_mapping_ではなく、塗りつぶしの美しさを設定しています。あらかじめ塗りつぶしグループを定義する新しい列を作成する必要があります(色の名前は使用しないでください)。次に、塗りつぶしの美しさをその変数にマップし、 'scale_fill_manual'で色を制御します。 – joran