更改 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 所需的确切阴影进行调整,但它似乎有效。
出于一些不相关的原因,我正在尝试使用 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 所需的确切阴影进行调整,但它似乎有效。