Wie beschrifte ich Rasterwerte im Plot?
Frage
Wie kann ich dem Diagramm Pixelwerte hinzufügen?Ich kann die Werte erhalten, indem ich verwende click()
aber ich möchte, dass es in der Handlung erscheint.
library(raster)
r <- raster(nrow=3, ncol=3)
r[] <- 1:ncell(r)
plot(r)
click(r)
Lösung
Probieren Sie Folgendes aus, das auf Teilen basiert, die aus der von zurückgegebenen Funktion zusammengesetzt wurdengetMethod("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)
Andere Tipps
Wenn Sie alle Werte anzeigen möchten, können Sie die verwenden text
Methode:
library(raster)
r <- raster(nrow=3, ncol=3, vals=1:9)
plot(r)
text(r)
Für eine Teilmenge können Sie Folgendes tun:
z <- rasterToPoints(r, function(x) x > 6 )
plot(r)
text(z[,1], z[,2], z[,3])
Ich weiß, dass diese Frage bereits als beantwortet markiert ist, aber aufbauend auf Joshs Lösung und Eddies Folgefrage ist hier eine kleine For-Schleife, die das tut, was Eddie verlangt hat (Rasterwerte ohne Dezimalzahlen und ohne Verwendung zeichnen). 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))
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow