gpt4 book ai didi

r - ggplot2热图,带有用于范围值的颜色

转载 作者:行者123 更新时间:2023-12-03 07:29:55 25 4
gpt4 key购买 nike

我想在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

最佳答案

对于这种情况,您有几种选择,但这是一个起点。

首先,使用cutY创建一个具有适当范围的因子:

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")

在低端,这种配色方案比蓝色更紫色,但这是我在啤酒 brew 者调色板中可以找到的最接近的颜色。

如果您想构建自己的,可以只使用 scale_fill_manual并为 values参数指定所需的颜色 vector 。

关于r - ggplot2热图,带有用于范围值的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com