Buenas tardes, Estoy probando a leer archivos netcdf (como raster stack) y crear animaciones de datos de modelos climáticos y estaba utilizando para generar las imágenes spplot(). Estás imágenes tienes superpuestas varias capas de imagenes, el mdt de base, nubosidad, precipitación y nieve. Mi pregunta es la siguiente,¿es posible visualizar la leyenda de cada una de las capas? Actualmente solo visualizo la de la capa base, el mdt. base<-spplot(mdt,col.regions=colMDT, at=pMDT,main=paste(idx[1]), par.settings = list(panel.background=list(col="aquamarine"))) nubes<- spplot(n[[1]],col.regions=colsN, at=pN) preci <- spplot(p[[1]],col.regions=colsP, at=pP) png(paste("precipitacion.png",sep=""),width=600, height=600,bg="white") print(base+nubes+preci) dev.off() Esto sería un ejemplo de lo que hago: https://drive.google.com/file/d/0B7R8FPPQAigaaE1Td2RWLS1qdGM/edit?usp=sharing Un saludo José Manuel Prieto _____________________________________ es.linkedin.com/in/josemanuelprietoblazquez/
Hola, Al hacer base+nubes+preci estás utilizando la función "+.trellis" de latticeExtra. Con esta función consigues superponer los distintos objetos como capas de la imagen, pero sólo se conserva la leyenda de la primera (base en tu caso). Puedes usar print.trellis para pintar todos las capas en paneles independientes cada uno con su leyenda. Por ejemplo, con dos gráficos: print(p, split=c(1, 1, 1, 2), more=TRUE) print(p2, split=c(1, 2, 1, 2)) Si quieres superponer y además conseguir todas las leyendas, la cosa se complica bastante. Suponiendo que esto ( http://oscarperpinan.github.io/spacetime-vis/images/popLandClass.png) es lo que quieres, aquí tienes código para una posible solución: https://github.com/oscarperpinan/spacetime-vis/blob/master/raster.R#L200. El detalle de cómo generar la leyenda multivariable lo tienes a partir de la linea 261. Saludos. Oscar. Oscar Perpiñán Lamigueiro Dpto. Ingeniería Eléctrica (ETSIDI-UPM) Grupo de Sistemas Fotovoltaicos (IES-UPM) URL: http://oscarperpinan.github.io Twitter: @oscarperpinan LinkedIn: http://es.linkedin.com/in/oscarperpinan El 06/02/2014 16:24, "Jose" <jmprietob@gmail.com> escribió:> Buenas tardes, > > Estoy probando a leer archivos netcdf (como raster stack) y crear > animaciones de datos de modelos climáticos y estaba utilizando para > generar las imágenes spplot(). Estás imágenes tienes superpuestas > varias capas de imagenes, el mdt de base, nubosidad, precipitación y > nieve. Mi pregunta es la siguiente,¿es posible visualizar la leyenda > de cada una de las capas? > Actualmente solo visualizo la de la capa base, el mdt. > > base<-spplot(mdt,col.regions=colMDT, at=pMDT,main=paste(idx[1]), > par.settings = list(panel.background=list(col="aquamarine"))) > nubes<- spplot(n[[1]],col.regions=colsN, at=pN) > preci <- spplot(p[[1]],col.regions=colsP, at=pP) > png(paste("precipitacion.png",sep=""),width=600, height=600,bg="white") > print(base+nubes+preci) > dev.off() > > Esto sería un ejemplo de lo que hago: > > https://drive.google.com/file/d/0B7R8FPPQAigaaE1Td2RWLS1qdGM/edit?usp=sharing > > Un saludo > José Manuel Prieto > _____________________________________ > es.linkedin.com/in/josemanuelprietoblazquez/ > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Muchas gracias Oscar, Investigo ese código a ver si puedo adaptarlo. Un saludo ______________________________________ José Manuel Prieto es.linkedin.com/in/josemanuelprietoblazquez/ jmprietob.github.io El día 10 de febrero de 2014, 1:20, Oscar Perpiñan <oscar.perpinan en upm.es> escribió:> Hola, > > Al hacer base+nubes+preci estás utilizando la función "+.trellis" de > latticeExtra. Con esta función consigues superponer los distintos objetos > como capas de la imagen, pero sólo se conserva la leyenda de la primera > (base en tu caso). > Puedes usar print.trellis para pintar todos las capas en paneles > independientes cada uno con su leyenda. Por ejemplo, con dos gráficos: > > print(p, split=c(1, 1, 1, 2), more=TRUE) > print(p2, split=c(1, 2, 1, 2)) > > Si quieres superponer y además conseguir todas las leyendas, la cosa se > complica bastante. Suponiendo que esto > (http://oscarperpinan.github.io/spacetime-vis/images/popLandClass.png) es lo > que quieres, aquí tienes código para una posible solución: > https://github.com/oscarperpinan/spacetime-vis/blob/master/raster.R#L200. El > detalle de cómo generar la leyenda multivariable lo tienes a partir de la > linea 261. > > Saludos. > > Oscar. > > Oscar Perpiñán Lamigueiro > Dpto. Ingeniería Eléctrica (ETSIDI-UPM) > Grupo de Sistemas Fotovoltaicos (IES-UPM) > URL: http://oscarperpinan.github.io > Twitter: @oscarperpinan > LinkedIn: http://es.linkedin.com/in/oscarperpinan > > El 06/02/2014 16:24, "Jose" <jmprietob en gmail.com> escribió: >> >> Buenas tardes, >> >> Estoy probando a leer archivos netcdf (como raster stack) y crear >> animaciones de datos de modelos climáticos y estaba utilizando para >> generar las imágenes spplot(). Estás imágenes tienes superpuestas >> varias capas de imagenes, el mdt de base, nubosidad, precipitación y >> nieve. Mi pregunta es la siguiente,¿es posible visualizar la leyenda >> de cada una de las capas? >> Actualmente solo visualizo la de la capa base, el mdt. >> >> base<-spplot(mdt,col.regions=colMDT, at=pMDT,main=paste(idx[1]), >> par.settings = list(panel.background=list(col="aquamarine"))) >> nubes<- spplot(n[[1]],col.regions=colsN, at=pN) >> preci <- spplot(p[[1]],col.regions=colsP, at=pP) >> png(paste("precipitacion.png",sep=""),width=600, height=600,bg="white") >> print(base+nubes+preci) >> dev.off() >> >> Esto sería un ejemplo de lo que hago: >> >> https://drive.google.com/file/d/0B7R8FPPQAigaaE1Td2RWLS1qdGM/edit?usp=sharing >> >> Un saludo >> José Manuel Prieto >> _____________________________________ >> es.linkedin.com/in/josemanuelprietoblazquez/ >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es