Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用不同的调色板和颜色比例打印光栅图像_R_Image_Plot - Fatal编程技术网

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)