문제

어떻게 픽셀 값을 플롯에 추가 할 수 있습니까?나는 click()를 사용하여 값을 얻을 수 있지만 플롯에 나타나기를 원합니다.

library(raster)
r <- raster(nrow=3, ncol=3)
r[] <- 1:ncell(r)
plot(r)
click(r) 
.

여기에 이미지 설명을 입력하십시오

도움이 되었습니까?

해결책

다음을 시도해보십시오.이 기능은 getMethod("click", signature="Raster").

myClick <- function(x, n = Inf, id = FALSE, xy = FALSE, cell = FALSE, 
                    type = "n", show = TRUE, ...) {
    i <- 0
    n <- max(n, 1)
    while (i < n) {
        i <- i + 1
        loc <- locator(1, type, ...)
        xyCoords <- cbind(x = loc$x, y = loc$y)
        cells <- na.omit(cellFromXY(x, xyCoords))
        if (length(cells) == 0)
              break
        value <- extract(x, cells)
        text(xyCoords, labels = value)
    }
}

## Try it out
myClick(r, n=4)
.

다른 팁

text 메소드를 사용할 수있는 모든 값을 표시하려면 다음을 수행하십시오.

library(raster)
r <- raster(nrow=3, ncol=3, vals=1:9)
plot(r)
text(r)
.

하위 집합의 경우 다음과 같은 작업을 수행 할 수 있습니다.

z <- rasterToPoints(r, function(x) x > 6 )
plot(r)
text(z[,1], z[,2], z[,3])
.

이 질문이 이미 답변 된 것으로 표시되어 있지만 Josh의 솔루션 및 Eddie의 후속 질문에 건설되어 있음을 알고 있지만 Eddie가 묻는 것 - 소수 숫자가없는 것과 click를 사용하지 않고 래스터 값을 플롯하는 것과 조금은 루프가 조금 있습니다.) :

r <- raster(nrow=3, ncol=3)
r[] <- runif(ncell(r))

plot(r)

for(i in 1:ncell(r)){
 xycoords <- xyFromCell(r, cell = i)
 value <- extract(r, xycoords)
 text(xycoords, labels = round(value))
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top