R 为什么矩阵到光栅显示为旋转?

R 为什么矩阵到光栅显示为旋转?,r,matrix,rotation,r-raster,R,Matrix,Rotation,R Raster,我试图将矩阵myMat转换为光栅数据myRas;然而,我不知道为什么会突然旋转。这可以很容易地通过90度旋转来修复,但是,如果有人解释为什么这种不必要的旋转总是发生的话,我将不胜感激?!如果有办法预防呢 set.seed(23022019) library(raster) library(RColorBrewer) #myMat myMat<-matrix(runif(3*3), ncol=3) image((myMat), col=rev(brewer.pal(9,"RdYlBu")

我试图将矩阵myMat转换为光栅数据myRas;然而,我不知道为什么会突然旋转。这可以很容易地通过90度旋转来修复,但是,如果有人解释为什么这种不必要的旋转总是发生的话,我将不胜感激?!如果有办法预防呢

set.seed(23022019)
library(raster)
library(RColorBrewer)

#myMat
myMat<-matrix(runif(3*3), ncol=3) 
image((myMat), col=rev(brewer.pal(9,"RdYlBu")))

#myRas
myRas <- raster(myMat)
image((myRas), col=rev(brewer.pal(9,"RdYlBu")))
我认为myRas没有旋转;然后图像MyMat被旋转。见下文

library(raster) 
myMat<-matrix(1:9, ncol=3, byrow=TRUE)
myRas <- raster(myMat)

par(mfrow=c(1,2))
image(myMat, col=terrain.colors(9), main="image(myMat)")
plot(myRas,  col=terrain.colors(9), main="plot(raster(myMat))")
text(myRas)
所发生的是imagemyMat按行读取值,并按列从下到上填充值。你可能希望这样,但这是一种轮换。相反,rastermyMat将值保持在相同的顺序


来自graphics::image的帮助解释了为什么它会显示这样的值;即使这可能很难理解。如果为矩阵提供值,但不提供x和y坐标,则为了方便起见,将使用第一个参数x而不是z。这将为x和y提供从0到1的等距值,并且假定z值从左下角开始按行升序排列

@www:这不是重复的-即使标题暗示了这一点。这个问题是关于从包含x、y和z的列表创建光栅层vectors@RobertHijmans当然让我重新打开它。这是矩阵到光栅转换规则的一个微妙之处。我认为在他们的帮助文档中并没有明确提到这一点。我扩展了我的答案来解释graphics::image的功能。至于光栅,我不知道人们会对没有发生的意外事件说些什么。
myMat
#     [,1] [,2] [,3]
#[1,]    1    2    3
#[2,]    4    5    6
#[3,]    7    8    9