我想从这里重现以下情节:
用 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')
这是情节:
非常感谢。