Raster-Spplot-Legende: So fügen Sie einen Titel daneben hinzu

8

Nachdem ich eine Weile gelernt hatte, wie man aus einem Rasterobjekt ein Diagramm erstellt, bekam ich fast alles, was ich brauchte, außer der Legende von spplot einen Titel hinzuzufügen.

Was ich versucht habe:

  1. zu verwenden mtext("XXX (m)", side=4),
  2. um ein sp.textaußerhalb des Gitters hinzuzufügen ,
  3. zu verwenden legend.args = list(title="XXX (m)").

Das folgende Bild zeigt die Funktion, die ich manuell zu meinem Plot hinzugefügt habe und in die ich die Verwendung von R aufnehmen möchte.

Geben Sie hier die Bildbeschreibung ein

Hier ist ein Beispiel für das, was ich bisher bekommen habe:

require(raster)
require(sp)
require(lattice)

north <- list("SpatialPolygonsRescale", layout.north.arrow(type=1), offset = c(0.95,0.85), scale=0.1)
scale <- list("SpatialPolygonsRescale", layout.scale.bar(),
      offset = c(0.55, 0.03), scale = 0.4, fill = c("transparent","black"))
txt1 <- list("sp.text", c(0.55, 0.08), "0")
txt2 <- list("sp.text", c(0.75, 0.08), "0.2")
txt3 <- list("sp.text", c(0.95, 0.08), "0.4")
raster_layout <- list(north,scale,txt1,txt2,txt3)
cuts <- c(110,120,130,140,150,160,170,180,190,200)
spplot(raster(volcano), scales = list(draw=T), at=cuts, col.regions = palette(gray(seq(0,0.9,len=9))), sp.layout= raster_layout, add=T)  

Danke für Ihre Hilfe.

Andre Silva
quelle

Antworten:

10

Sie können hier nicht verwenden mtext, da spplotes auf dem Gitterpaket basiert . mtextkann nur mit Basisgrafiken verwendet werden.

R> p <- spplot(raster(volcano), scales = list(draw=T), at=cuts,
+              col.regions = palette(gray(seq(0,0.9,len=9))),
+              sp.layout= raster_layout, add=T)
R> class(p)
[1] "trellis"  # -> lattice package

Das latticePaket verwendet die gridGrafik-Engine, ein Low-Level-Grafiksystem für R. Beide Pakete sind Teil der Basis-R-Distribution.

Um eine Textbeschriftung an einer beliebigen Position hinzuzufügen, können Sie die Funktion verwenden grid.text, z

library("grid")
grid.text("XXX (m)", x=unit(0.95, "npc"), y=unit(0.50, "npc"), rot=-90)
rcs
quelle