2012-08-26 2 views
5

를 사용하려 여러 래스터는 I 레이아웃을 정의하는 행렬 레이아웃() 명령을 사용하여 단일 플롯 창 래스터 이미지와 히스토그램을 조합 플롯려고. 여기에 단순화 된 데이터에 몇 가지 예제 코드는 다음과 같습니다R - R (Win64를)에서 매트릭스 레이아웃

library(raster) 

r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5) 
rast1 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25)) 
rast2 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25)) 
rast3 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25)) 

layout(matrix(c(1,2,3,4,1,2,3,5,1,2,3,6), 3, 4, byrow=T)) 
layout.show(6) 

plot(rast1, axes=F, ann=F, legend=F, box=F, useRaster=T) 
plot(rast2, axes=F, ann=F, legend=F, box=F, useRaster=T) 
plot(rast3, axes=F, ann=F, legend=F, box=F, useRaster=T) 
hist(rnorm(100), ann=F, axes=F) 
hist(rnorm(100), ann=F, axes=F) 
hist(rnorm(100), ann=F, axes=F) 

당신은, 내가 그들 옆에 3 히스토그램과 1 열 및 3 열 각각에 걸쳐 세 개의 래스터 이미지 (rast1, rast2, rast3을), 플롯하기 위해 노력하고있어 볼 수 있듯이 각각은 1 열 1 행에 걸쳐 있습니다. layout.show() 명령은 아이디어를 제공합니다. 이 코드를 실행하면

, 그것은 명령은 (5 플롯은 이제 첫 번째 겹치는) 표준 × 4 그리드에서 플롯 이후의 모든 플롯을 일으키는 원인이되는 플롯 윈도우의 레이아웃을 재설정 최초의 플롯 (래스터)처럼 보인다 . 적절한 레이아웃에서 여섯 개의 히스토그램을 그릴 수 있기 때문에 레이아웃 설정이 소리가납니다. 그러나 래스터 그림은 물건을 엉망으로 만듭니다.

나는 레이아웃() 명령을 어지럽히 {래스터}의 플롯() 명령에 대해 뭔가가 생각,하지만 난 아무 생각 왜 나 방법이 없습니다. 이 레이아웃을 성취 할 다른 방법이 있습니까? 다른 래스터 기반 명령? 래스터 플롯간에 레이아웃을 다시 설정할 수있는 방법이 있습니까? 사전에

감사합니다.

+0

'plot' 함수는 실제로 그것의 첫 번째 인자의 클래스에 기초하여 dispatch 될 다양한 함수입니다. 전달할 객체의 클래스에 대한 특정 함수를 살펴야합니다. (아마도'plot.raster') –

답변

4

S4 방법과 layout() 사이에 문제가있을 수 있습니다. 이 문제를 해결하기 위해 plot()을 image()로 대체하는 것으로 보입니다. 플롯 (rast1, axes = F, ann = F, 범례 = F, 상자 = F, useRaster = T) 대신 정사각형 이미지 맵을 얻으려면 이미지 (rast1, axes = F, ann = F, asp = 1)를 사용하십시오.

+0

환상적! 매력처럼 작동합니다. dcarlson에게 감사드립니다! –

+0

래스터에 대한 플롯 대신 이미지를 사용하는 경우 범례를 어떻게 되 찾을 수 있습니까? – jjunju