更改 ggplot2 中光栅图的颜色

Change colors of raster plot in ggplot2

出于一些不相关的原因,我正在尝试使用 ggplot2 而不是光栅包绘图函数来制作光栅图。

我想缩放颜色,使图上的最低温度为蓝色,图上的最高温度为红色,而中间范围为白色。我尝试了 ggplot2 中的许多函数,但始终无法获得所需的结果。这就是我想要的:

这是我的 ggplot2 代码的当前状态:

library(raster)
library(ggplot2)
library(scales)

r = raster()
r[] = 1:ncell(r)

df = as.data.frame(r, xy=TRUE)

the_plot = ggplot(df) + 
  geom_raster(aes(x, y, fill=layer)) +
  scale_fill_gradient2(low=muted('red'), mid='white', high=muted('blue'))
print(the_plot)

生成的不是所需的色带:

非常感谢任何建议!

刚刚尝试了您的示例数据集,以下代码对我有用。

the_plot = ggplot(df) + 
  geom_raster(aes(x, y, fill=layer)) +
  scale_fill_gradientn(colours=c("#0000FFFF","#FFFFFFFF","#FF0000FF"))
print(the_plot)

RGB 颜色需要针对 blue/red 所需的确切阴影进行调整,但它似乎有效。