R 使用不同的调色板和颜色比例打印光栅图像
我正在尝试创建一个比例如下的图像R 使用不同的调色板和颜色比例打印光栅图像,r,image,plot,R,Image,Plot,我正在尝试创建一个比例如下的图像 m3 <- matrix(rnorm(100), 10, 10) plot(NA, type="n", xlim=c(1, nc), ylim=c(1, nr), axes=FALSE, asp=1, xlab="", ylab="") m3 <- abs(m3)/max(abs(m3)) rasterImage(m3, xleft=1, xright=nc, ybottom=1, ytop=nr) 但我没能成功 image(m3, useRa
m3 <- matrix(rnorm(100), 10, 10)
plot(NA, type="n", xlim=c(1, nc), ylim=c(1, nr), axes=FALSE, asp=1,
xlab="", ylab="")
m3 <- abs(m3)/max(abs(m3))
rasterImage(m3, xleft=1, xright=nc, ybottom=1, ytop=nr)
但我没能成功
image(m3, useRaster=TRUE, col="blue")
我还需要一个像这样的色标
有人知道如何用一个函数来完成吗?这里有一个使用
图像的解决方案。缩放函数:
im
image(m3, useRaster=TRUE, col="blue")
im <- abs(matrix(rnorm(100), 10, 10))
mI <- max(im, na.rm=TRUE)
rM <- im
rM[is.na(rM)] <- 0
colRamp <- colorRamp(c("black", "blue", "green", "yellow", "red", "purple"))
col <- rgb(colRamp(rM/mI), maxColorValue=255)
p <- matrix(NA, nrow=nrow(im), ncol=ncol(im), byrow=TRUE)
p[,] <- col
layout(matrix(c(1,2), nrow=2, ncol=1), heights=c(4,1))
layout.show(2)
par(mar=c(1,1,1,1))
breaks <- seq(min(rM/mI), max(rM/mI),length.out=100)
plot(NA, type="n", xlim=c(1, ncol(p)), ylim=c(1, nrow(p)),
xlab="", ylab="", xaxs="i", yaxs="i", axes=FALSE, asp=1)
rasterImage(as.raster(p), xleft=1, xright=ncol(p), ybottom=1, ytop=nrow(p),
interpolate=TRUE)
par(mar=c(3,1,1,1))
pal.1=colorRampPalette(c("black", "blue", "green", "yellow", "red", "purple"), space="rgb")
image.scale(m3, col=pal.1(length(breaks)-1), breaks=breaks, horiz=TRUE)