0

我想从这里重现以下情节:

想要的情节

用 cm.colors(255) 绘制: 用 cm.colors(255) 绘制

ImagePlot <- function(x, ...){
 min <- min(x)
 max <- max(x)
 layout(matrix(data=c(1,2), nrow=1, ncol=2), widths=c(1,7), heights=c(1,1))

 ColorLevels <- cm.colors(255)

 # Color Scale
 par(mar = c(1,2.2,1,1))
 image(1, seq(min,max,length=255),
  matrix(data=seq(min,max,length=255), ncol=length(ColorLevels),nrow=1),
  col=ColorLevels,
  xlab="",ylab="",
  xaxt="n")
    
 # Data Map
 par(mar = c(0.5,1,1,1))
 image(1:dim(x)[1], 1:dim(x)[2], t(x), col=ColorLevels, xlab="",
 ylab="", axes=FALSE, zlim=c(min,max))

layout(1)
}

#100x100 example
x <- c(seq(-10,10,length=255),rep(0,600))
mat <- matrix(sample(x,10000,replace=TRUE),nrow=100,ncol=100)
ImagePlot(mat)

我想用 viridis 更改配色方案,在那里我将线更改ColorLevels <- cm.colors(255)ColorLevels <- viridis::viridis(255). 它起作用了,但零不是白色的。

我尝试用以下改变中位数,但它只改变它的第三个四分位数。这是我的尝试:

match(median(ColorLevels),ColorLevels)
  ColorLevels <- replace(ColorLevels, 178, '#FFFFFF')

这是情节: 阴谋

非常感谢。

4

0 回答 0