2017-02-08 1 views
0

나는 온도 netcdf data.i image.plot 함수에 의해 R의 필드 패키지를 사용하여 두 이미지 (첫 번째 최대 온도 및 두 번째 평균 온도)를 그려야합니다. 첫 번째 이미지의 그리드가 두 번째 이미지에서 그 그리드의 교차/별 표시를 300K와 같이 더 크게 표시하고 싶습니다.R의 image.plot을 사용하여 이미지의 일부 눈금에 기호 (십자 기호, 별표, 숫자 1/2 ..)를 추가하는 방법은 무엇입니까?

답변

0

x와 y를 지정하면 첫 번째 행렬의 조건을 만족하는 색인을 얻기가 쉽고 두 번째 기호를 배치합니다. 나는 아래에 사소한 예를 든다.

먼저 데이터를 구성합니다.

library(fields) 
test <- matrix(runif(100),ncol=10) 
test2 <- matrix(1:100, ncol=10) 

그런 다음 플로팅 환경을 설정하고 데이터를 시각화 할 수 있습니다.

layout(matrix(c(1,2),ncol=2)) 
image.plot(x=1:10, y=1:10, z=unlist(test)) 
image.plot(x=1:10, y=1:10, z=unlist(test2)) 

그러면 우리는 어느 셀이 0.75보다 큰 기준을 만족시키는지를 결정합니다 (이것은 임의적입니다).

inds <- which(test > 0.75, arr.ind=TRUE) 

그럼 우리가 test 만족 매트릭스에서있는 우리의 기준에 test2에서 셀의 중심에 별 기호를 추가 할 points를 사용할 수 있습니다.

points(x=inds[,1], y=inds[,2], pch=8) 

enter image description here

+0

「점 (X = INDS [1], Y는 INDS가 = [2], PCH = 8) "이 작동하지 않는다. x 및 y 값의 위치에 lat-long이 원인 일 수 있습니다. –

+0

공간 데이터 처리를 위해 image.plot을 사용하지 않는 것이 좋습니다. 'raster' 패키지를 사용하여 image.plot과 비슷한 것을 만들 수 있습니다. 그런 다음 대답과 비슷한 방식으로 points 명령으로 공간 점을 오버레이 할 수 있습니다. 'raster' 패키지는 자체 데이터 구조를 가지고 있지만 상대적으로 직관적입니다. 값 (rasterObject)은 값을, 좌표 (rasterObject)는 좌표를 제공합니다 (사용자가 해당 작업을 수행 할 메모리가있는 경우). –

관련 문제