[R-es] varios mapas en un mismo plot con rasterVis
Oscar Perpiñán Lamigueiro
oscar.perpinan en gmail.com
Jue Feb 14 07:24:43 CET 2013
Hola,
Envío un ejemplo para usar la flecha de Norte tal y como está definida
en el paquete sp.
library(raster)
library(rasterVis)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r) +
layer(
SpatialPolygonsRescale(layout.north.arrow(),
offset = c(181000,330500),
scale = 400)
)
Para añadir la escala hay que usar la función layout.scale.bar de un
modo similar a layout.north.arrow. En la página de ayuda de spplot hay
algún ejemplo al respecto. Otra opción es dibujarlo a la manera de uno
mismo usando grid.rect. Por ejemplo:
levelplot(r) +
layer({
xs <- seq(181000, 181400, by=100)
grid.rect(x=xs, y=330500,
width=100, height=30,
gp=gpar(fill=rep(c('transparent', 'black'), 2)),
default.units='native')
grid.text(x= xs - 50, y=330560, seq(0, 400, by=100),
gp=gpar(cex=0.4), rot=30,
default.units='native')
})
Saludos.
Oscar.
Javier Martínez-López <javi.martinez.lopez en gmail.com> writes:
> ok, la respuesta a la primera pregunta está aquí:
> https://stat.ethz.ch/pipermail/r-sig-geo/2012-January/013984.html
>
> ... Gracias de nuevo Óscar, y respecto a lo de poner la escala
> geográfica y la flecha de Norte, si alguien sabe algo sería de gran
> ayuda!
>
> Saludos,
>
> Javier
>
> 2013/2/13 Javier Martínez-López <javi.martinez.lopez en gmail.com>:
>> Hola de nuevo,
>>
>> Ahora tengo otra duda, ¿puedo añadir anotaciones de texto a un
>> levelplot de rasterVis? Hasta ahora sólo he conseguido hacerlo a
>> posteriori con la función 'text' y llamando primero plot.new() porque
>> si no me da error. El problema es que necesito que las anotaciones
>> estén incluidas en el mapa que genero con levelplot porque luego uno
>> varios mapas con c(). Y ya que estamos... ¿se pueden poner escalas
>> geográficas y flechas de Norte en los mapas generados con levelplot de
>> rasterVis? No he visto nada al respecto... ; )
>>
>> Muchas gracias!
>>
>> Saludos,
>>
>> Javier
>>
>> 2013/1/24 Oscar Perpiñan <oscar.perpinan en gmail.com>:
>>> Hola Javier,
>>>
>>> Contesto por alusiones ;-)
>>>
>>> Para usar la misma leyenda te conviene usar la función c.trellis del paquete
>>> latticeExtra:
>>> http://latticeextra.r-forge.r-project.org/#c.trellis&theme=default
>>>
>>> Por ejemplo, supongamos que tienes dos raster, r1 y r2:
>>>
>>> library(rasterVis)
>>>
>>> p1 <- levelplot(r1)
>>> p2 <- levelplot(r2)
>>>
>>> c(p1, p2)
>>>
>>> En la ayuda de c.trellis encontrarás más opciones que quizás te resulten
>>> útiles.
>>>
>>> Saludos.
>>>
>>> Oscar.
>>>
>>>
>>> El 24 de enero de 2013 17:18, Javier Martínez-López
>>> <javi.martinez.lopez en gmail.com> escribió:
>>>>
>>>> Hola a tod en s,
>>>>
>>>> quiero poner diversos mapas ráster categóricos en una misma figura y con
>>>> una sola leyenda y estoy usando un ejemplo de Óscar Perpiñán (
>>>> https://procomun.wordpress.com/2012/02/20/maps_with_r_2/ , el segundo
>>>> ejemplo) para hacer los mapas. Quedan genial, el problema es que cada mapa
>>>> es de una zona distina y no sé cómo ponerlos en la misma figura y con una
>>>> única leyenda... He probado a hacerlo con ggplot2 directamente pero no
>>>> obtengo los resultados que quiero y además se generan figuras muy
>>>> pesadas... ¿alguna idea? Los mapas los importo con el paquete 'raster'.
>>>>
>>>> Gracias y saludos,
>>>>
>>>> Javier
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>
--
Oscar Perpiñán Lamigueiro
Dpto. Ingeniería Eléctrica
EUITI-UPM
URL: http://procomun.wordpress.com
Twitter: @oscarperpinan
Más información sobre la lista de distribución R-help-es