7 votos

Leyenda de spplot raster: cómo añadir un título al lado

Después de estudiar un rato cómo crear un gráfico a partir de un objeto rasterizado, conseguí casi todo lo que necesitaba excepto añadir un título a la leyenda de spplot.

Lo que he probado:

  1. para usar mtext("XXX (m)", side=4) ,
  2. para añadir un sp.text fuera de la red,
  3. para usar legend.args = list(title="XXX (m)") .

La imagen de abajo señala, la característica que añadí manualmente a mi parcela, y en la que me gustaría incluir usando R.

enter image description here

Este es un ejemplo de lo que he conseguido hasta ahora:

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)  

Gracias por su ayuda.

11voto

fastcall Puntos 874

No se puede utilizar mtext aquí, porque spplot se basa en el celosía paquete. mtext sólo puede utilizarse con gráficos de base.

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

El lattice hace uso del paquete grid que es un sistema de gráficos de bajo nivel para R. Ambos paquetes forman parte de la distribución básica de R.

Para añadir una etiqueta de texto en una posición arbitraria puede utilizar la función grid.text Por ejemplo

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

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X