我正在尝试生成具有不同颜色(红色、白色、蓝色)的热图,但白色位于选定的值(或改变比例),而不是数据的自动拟合/居中。
样本数据集:
set.seed(5)
demo <- data.frame(x = seq(from = -40, to = 40, by = 5), y = 0:5, data = runif(102, min = 0, max = 1))我生成热图的尝试基于以下几点:
library(ggplot2)
library(ggsci)
ggplot(demo) + geom_tile(aes(x = x, y = y, fill = data), color = NA) + scale_fill_gsea()但是,我想将中间的“白色”部分移动到一个不同的值,例如0.9,并且我想设置我自己的分立箱。
通过阅读更多的文章和stackoverflow帖子,我的理解是,在使用scale_fill_manual之前,我将不得不使用cut来生成我自己的部分,以便设置我自己的颜色比例。
有没有更简单的方法来解决我错过的这个问题?
谢谢。
发布于 2019-10-10 14:14:20
使用scale_fill_gradient2,您可以为中点定义自定义值:
ggplot(demo) +
geom_tile(aes(x = x, y = y, fill = data), color = NA) +
scale_fill_gradient2(low = "blue", mid = "white", high = "red",
midpoint = 0.9,
breaks = seq(0, 1, 0.1),
limits = c(0, 1))

https://stackoverflow.com/questions/58298917
复制相似问题