私は初心者です。ヒートマップを設計しようとしています。これは私のコードです:
_ggplot(Gd, aes(Qcountry, Q6_1_Q6d), order = TRUE) +
geom_tile(aes(fill = prob), colour = "white") +
theme_minimal() +
labs( y = "Main reason for mobility", x = "Country") +
theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.3)) +
scale_fill_gradient(name = "(%)")
_
これは完璧なチャートを生成しますが、私の問題は、低レベルが濃い青で、高い値が水色であるということです。これは直感的ではありません。最も一般的な方法は、rev()
を使用することです。しかし、私の場合、私はその方法がわかりません。それで、このデフォルトスケールを逆にすることは可能ですか? これは凡例です
他の質問は、1つの色だけでスケールグラデーションを作成する方法はありますか。つまり、_scale_fill_gradient/scale_fill_gradientn
_は低色と高色を設定する必要があります_(low = "", high = "")
_そして私は青を赤に変更したいと思います。
ご支援ありがとうございます。
RColorBrewer
(link) ライブラリのカラーパレットを使用して、カラーグラデーションの方向を割り当てることができます
library(RColorBrewer)
library(ggplot2)
ggplot(df, aes(x, y)) +
geom_tile(aes(fill = z, width = w), colour = "grey50") +
scale_fill_distiller(palette ="RdBu", direction = -1) # or direction=1
# data
df <- data.frame( x = rep(c(2, 5, 7, 9, 12), 2),
y = rep(c(1, 2), each = 5),
z = rep(1:5, each = 2),
w = rep(diff(c(0, 4, 6, 8, 10, 14)), 2))