设置viridis或RColorBrewer中颜色范围的参考值

设置viridis或RColorBrewer中颜色范围的参考值,r,plot,ggplot2,R,Plot,Ggplot2,我想使用packagesviridis或RColorBrewer中的调色板绘制一个图,但我想设置变量分布中的哪个点应被视为颜色渐变的中点 例如,在以下绘图中,R取0.5作为颜色范围的中点。如何设置不同的值,例如0.25 library(ggplot2) library(RColorBrewer) # data set.seed(1) df <- expand.grid(x = 0:5, y = 0:5) df$z <- runif(nrow(df)) # plot ggplot(

我想使用packages
viridis
RColorBrewer
中的调色板绘制一个图,但我想设置变量分布中的哪个点应被视为颜色渐变的中点

例如,在以下绘图中,R取0.5作为颜色范围的中点。如何设置不同的值,例如0.25

library(ggplot2)
library(RColorBrewer)

# data
set.seed(1)
df <- expand.grid(x = 0:5, y = 0:5)
df$z <- runif(nrow(df))

# plot
ggplot(df, aes(x, y, fill = z)) + geom_raster() +
  scale_fill_distiller( palette="RdBu", guide = "colorbar")

编辑:我在这里寻找类似的解决方案,因为我的变量的分布是不对称的。但是,我想保留从深蓝色到深红色的整个颜色范围,这似乎是不可能的

ggplot(df, aes(x, y, fill = z)) + geom_raster() +
  scale_fill_gradient2( low = "#2166ac", mid = "#f7f7f7", high = "#b2182b", midpoint = 0.2, 
                        space = "Lab", na.value = "grey50", guide = "colourbar")
也许可以尝试设置

 space = scale(c(-zlim, 0, zlim))
其中zlim是数据的极值。

可以尝试设置

 space = scale(c(-zlim, 0, zlim))

其中zlim是数据的极值。

@Henrik我用更多信息编辑了问题。@Henrik我用更多信息编辑了问题。