2014-10-02 1 views
1

두 개의 래스터 데이터를 플로팅하여 아래 이미지를 만듭니다.Scatter 세 번째 래스터에서 색상을 제공하는 두 래스터 사이의 점 배치

제 3의 래스터 데이터 (동일한 bbox, 픽셀 크기 등)에서 가져온 변수를 사용하여 그래프의 각 포인트에 색상을 지정하고 싶습니다. R 사용자의 아이디어가 있습니까? 이 작업은 데이터 세트의 데이터를 플로팅하는 데는 매우 쉽지만 래스터에 대해 잘 모르겠습니다 ...

여기 코드를 첨부합니다 (간략하게, 나는 모든 플롯 매개 변수가 필요하지 않다고 생각합니다. 예 : abline, xlab 및 so) 이미지를 생성 한 :

plot(mask(raster1, my_mask,maskvalue=0), #first raster, masked by my_mask 
     mask(raster2, my_mask,maskvalue=0), #second raster, masked by my_mask   
     col = alpha('black', 0.1), #the current color scheme  
    ) 
raster3 #raster with categorical variable, 
     #that should give the colors to the points in the graph 

감사합니다. 그들이 data.frame의 열 것처럼 당신이 RasterStack의 레이어를 사용할 수 있습니다 rasterVis 에 정의 된 xyplot 방법으로 plot betwween two raster

+0

, 당신은 다른 (특정?) 색으로 세 번째 래스터에서 불과 포인트를 오버레이하고 싶어? –

+0

안녕하세요, 로마 님. 색상은 세 번째 래스터의 래스터 값으로 지정해야합니다. 세 번째 래스터에는 디지털 번호가 거의 없습니다 (약 5 개). – FraNut

+0

재현 가능한 예를 만들 수 있습니까? –

답변

2

. 따라서 수식의 구성 요소 또는 groups 인수가 될 수 있습니다. 본질적으로 예를 들어

,

library(raster) 
library(rasterVis) 

f <- system.file("external/test.grd", package="raster") 
r <- raster(f) 
r2 <- r + 500 * init(r, rnorm) 
## categorical variable 
r3 <- cut(r, 3) 

s <- stack(r, r2, r3) 
names(s) <- c('r', 'r2', 'r3') 

xyplot(r ~ r2, groups = r3, data = s, 
     auto.key = list(space = 'right'), 
     alpha = 1) 

scatterplot

+0

오스카 감사합니다. 귀하의 예제를 사용하여이 솔루션도 발견했습니다 : my.colors <- getValues ​​(r3) plot (r, r2, col = my.colors) 방금 ​​벡터에서 "범주 형 래스터"를 변형했습니다. – FraNut