Ggplot2でヒートマップを作成します。私のおもちゃのデータとコードは次のとおりです。
set.seed(12345)
dat <-
data.frame(
Row = rep(x = LETTERS[1:5], times = 10)
, Col = rep(x = LETTERS[1:10], each = 5)
, Y = rnorm(n = 50, mean = 0, sd = 1)
)
library(ggplot2)
p <- ggplot(data = dat, aes(x = Row, y = Col)) +
geom_tile(aes(fill = Y), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue")
p
次のような範囲の値の配色が必要です。
-3 <= Y < -2 ---> Dark Blue
-2 <= Y < -1 ---> Blue
-1 <= Y < 0 ---> Light Blue
0 <= Y < 1 ---> Light Green
1 <= Y < 2 ---> Green
2 <= Y <= 3 ---> Dark Green
どんな助けも大歓迎です。ありがとう
このようなものにはいくつかのオプションがありますが、出発点としてここにあります。
まず、cut
を使用して、適切な範囲でY
から因子を作成します。
dat$Y1 <- cut(dat$Y,breaks = c(-Inf,-3:3,Inf),right = FALSE)
次に、RColorBrewerのパレットを使用してプロットします。
ggplot(data = dat, aes(x = Row, y = Col)) +
geom_tile(aes(fill = Y1), colour = "white") +
scale_fill_brewer(palette = "PRGn")
この配色は、ローエンドでは青よりも紫ですが、醸造パレットの中で最も近い色です。
独自に構築したい場合は、単にscale_fill_manual
およびvalues
引数に希望する色のベクトルを指定します。