R 使用levelplot的光栅中的重叠点(或符号)

R 使用levelplot的光栅中的重叠点(或符号),r,R,我想寻求一些帮助来绘制转换为光栅的矩阵,并用另一个符号覆盖。为此,我尝试使用layer和sp.points,就像我读过的几个例子一样……但我对这一点不太熟悉,我遗漏了一些东西。这将是主要的想法。我将举一个可重复的例子,因为实际数据更复杂 #Create 1 matrix m1 <- matrix(runif(100),nrow=10,ncol=20) #create 2 matrix m2 <- matrix(1:4,

我想寻求一些帮助来绘制转换为光栅的矩阵,并用另一个符号覆盖。为此,我尝试使用layer和sp.points,就像我读过的几个例子一样……但我对这一点不太熟悉,我遗漏了一些东西。这将是主要的想法。我将举一个可重复的例子,因为实际数据更复杂

        #Create 1 matrix
        m1 <- matrix(runif(100),nrow=10,ncol=20)
        #create 2 matrix 
        m2 <- matrix(1:4,nrow=10,ncol=20)

        #Convert to raster
        M1<- stack(raster(m1))
        #plot
        p<-levelplot(M1, margin=FALSE)

        #For the second matrix
         xy<-melt(m2)
        #Add the layer
        p +layer(sp.points(xy, pch=1:4)
我知道这是错误的…但我不知道如何绘制它。。。 如有任何建议,将不胜感激


提前谢谢

以下是一些可能有用的想法/备选方案:

m1 <- matrix(runif(100),nrow=10,ncol=20)
m2 <- matrix(1:4,nrow=10,ncol=20)

library(raster)
M1 <- raster(m1)
M2 <- raster(m2)

plot(M1)
text(M2)   

pts <- cbind(xyFromCell(M1, 1:ncell(M1)), value=as.vector(t(m2)))

plot(M1)
cols=rainbow(4)[pts[,3]]
points(pts)
points(pts, col=cols, pch=20)

xy <- SpatialPoints(pts[,1:2])

library(rasterVis)
p <-levelplot(M1, margin=FALSE)
p + layer(sp.points(xy, pch=1:4))

spplot(M1, sp.layout = list("sp.points", xy, pch=1:4))

好主意!!谢谢!!这似乎适用于我的真实数据:,两种情况都很完美..我可以使用数字或符号!,再次感谢!