Hola, Estoy tratando de sobreponer un mapa sobre otro, uno que sirva de ?background? y otro con datos. Mi primer intento lo hice usando el paquete PBSmapping. Aquí lo que hice: library(PBSmapping) estados <- importShapefile(?Entidades_2013.shp") #Aquí cargamos las entidades federativas (32 entidades) zonas <- importShapefile(?zm.shp?) #Aquí cargamos las zonas metropolitanas del país (345 municipios) plotPolys(estados, xlab=?Longitud?, ylab=?Latitud?, border=?gray?) addLines(zonas, col=?red?) Este es el resultado: https://www.dropbox.com/s/1286j3ppk6nyve6/zonas.tiff Ahora lo que deseo hacer es agregar datos, por ejemplo el cociente de localización de la industria de la electronica para cada municipio de las zonas. Anteriormente lo he hecho con spplot, pero primero agregando los datos a traves de: zm <- readOGR(?.?, ?zm?) datos <- read.csv(ql.csv) #cocientes de localización por sector por municipio (345 obs) zonas en data=data.frame(datos) y después lo he pintado así: spplot(zonas, c(?industria_electronica?)) Este es el resultado: https://www.dropbox.com/s/wbnp5hm79kvqedq/ql_indelec.tiff Quisiera saber entonces, cómo puedo hacerle de tal manera que pueda pintar los datos del cociente de localización pero teniendo de ?background? la división política de las entidades federativas, ya que utilizando el spplot sólo me pinta los 345 municipios que tengo en la capa. De antemano gracias. Saludos Rolando Valdez
Hola! Así rapidamente se me ocurren dos maneras de pintar mapas o gráficos en capas: Utilizando la función 'plot' de los base graphics de R puedes pintar mapas, y puedes pintar uno encima de otro pasándole a la función el argumento 'add = TRUE'. También se puede lograr pintando los mapas mediante 'ggplot'. Saludos! -- Beatriz Martínez @_bmartinez_ <https://twitter.com/_bmartinez_> El 12 de marzo de 2014, 7:00, Rolando Valdez <rvaldezr@gmail.com> escribió:> Hola, > > Estoy tratando de sobreponer un mapa sobre otro, uno que sirva de > "background" y otro con datos. Mi primer intento lo hice usando el paquete > PBSmapping. > > Aquí lo que hice: > > library(PBSmapping) > estados <- importShapefile("Entidades_2013.shp") #Aquí cargamos las > entidades federativas (32 entidades) > zonas <- importShapefile("zm.shp") #Aquí cargamos las zonas metropolitanas > del país (345 municipios) > plotPolys(estados, xlab="Longitud", ylab="Latitud", border="gray") > addLines(zonas, col="red") > > Este es el resultado: https://www.dropbox.com/s/1286j3ppk6nyve6/zonas.tiff > > Ahora lo que deseo hacer es agregar datos, por ejemplo el cociente de > localización de la industria de la electronica para cada municipio de las > zonas. Anteriormente lo he hecho con spplot, pero primero agregando los > datos a traves de: > > zm <- readOGR(".", "zm") > datos <- read.csv(ql.csv) #cocientes de localización por sector por > municipio (345 obs) > zonas@data=data.frame(datos) > > y después lo he pintado así: > > spplot(zonas, c("industria_electronica")) > > Este es el resultado: > https://www.dropbox.com/s/wbnp5hm79kvqedq/ql_indelec.tiff > > Quisiera saber entonces, cómo puedo hacerle de tal manera que pueda pintar > los datos del cociente de localización pero teniendo de "background" la > división política de las entidades federativas, ya que utilizando el spplot > sólo me pinta los 345 municipios que tengo en la capa. > > De antemano gracias. > > Saludos > > Rolando Valdez > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola, Utiliza el argumento "sp.layout" de spplot. Debes pasarle una lista cuyo primer elemento es el nombre de la función que vas a usar para dibujar, en segundo lugar el objeto que vas a representar con esta función, y a continuación (opcional) los argumentos adicionales para la función. En tu caso: library(sp) [...] background <- list('sp.polygons', zonas) spplot(zonas, "industria_electronica", sp.layout=background) En help('spplot') encontrarás información y ejemplos para utilizarlo. 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 El día 12 de marzo de 2014, 7:00, Rolando Valdez <rvaldezr en gmail.com> escribió:> Hola, > > Estoy tratando de sobreponer un mapa sobre otro, uno que sirva de "background" y otro con datos. Mi primer intento lo hice usando el paquete PBSmapping. > > Aquí lo que hice: > > library(PBSmapping) > estados <- importShapefile("Entidades_2013.shp") #Aquí cargamos las entidades federativas (32 entidades) > zonas <- importShapefile("zm.shp") #Aquí cargamos las zonas metropolitanas del país (345 municipios) > plotPolys(estados, xlab="Longitud", ylab="Latitud", border="gray") > addLines(zonas, col="red") > > Este es el resultado: https://www.dropbox.com/s/1286j3ppk6nyve6/zonas.tiff > > Ahora lo que deseo hacer es agregar datos, por ejemplo el cociente de localización de la industria de la electronica para cada municipio de las zonas. Anteriormente lo he hecho con spplot, pero primero agregando los datos a traves de: > > zm <- readOGR(".", "zm") > datos <- read.csv(ql.csv) #cocientes de localización por sector por municipio (345 obs) > zonas en data=data.frame(datos) > > y después lo he pintado así: > > spplot(zonas, c("industria_electronica")) > > Este es el resultado: https://www.dropbox.com/s/wbnp5hm79kvqedq/ql_indelec.tiff > > Quisiera saber entonces, cómo puedo hacerle de tal manera que pueda pintar los datos del cociente de localización pero teniendo de "background" la división política de las entidades federativas, ya que utilizando el spplot sólo me pinta los 345 municipios que tengo en la capa. > > De antemano gracias. > > Saludos > > Rolando Valdez > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, Me ha servido mucho tu respuesta, pude pintar el mapa sin problemas. Este es el resultado: https://www.dropbox.com/s/1mo647rtt4h3dov/ql_indalim.tiff Ahora tengo un problema, estuve explorando la ayuda del spplot para añadir detalles al mapa, por ejemplo la flecha que indica el norte y no pasó nada. Otra cosa que no pude modificar fue los valores del colorkey, yo quiero que aparezcan los decimales 1.0, 2.0, 3.0,? y valores intermedios como 1.5, 2.5, 3.5,? etc. y no encuentro de qué manera hacerlo. La flecha la definí de la siguiente forma:> arrow = list("SpatialPolygonsRescale", layout.north.arrow(), offset = c(1500000,600000), scale = 0.5, which = 2) > spplot(zm, c("ind_alim"), sp.layout=list(background, arrow), col.regions=bpy.colors(20), scales = list(draw = TRUE))Y simplemente no pasa nada, me devuelve el mismo mapa que comparto en este correo. ¿Alguien tiene una idea? De antemano gracias. El 12/03/2014, a las 04:13, Oscar Perpiñan <oscar.perpinan en upm.es> escribió:> Hola, > > Utiliza el argumento "sp.layout" de spplot. Debes pasarle una lista > cuyo primer elemento es el nombre de la función que vas a usar para > dibujar, en segundo lugar el objeto que vas a representar con esta > función, y a continuación (opcional) los argumentos adicionales para > la función. > > En tu caso: > > library(sp) > [...] > background <- list('sp.polygons', zonas) > spplot(zonas, "industria_electronica", sp.layout=background) > > En help('spplot') encontrarás información y ejemplos para utilizarlo. > > 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 > > > El día 12 de marzo de 2014, 7:00, Rolando Valdez <rvaldezr en gmail.com> escribió: >> Hola, >> >> Estoy tratando de sobreponer un mapa sobre otro, uno que sirva de "background" y otro con datos. Mi primer intento lo hice usando el paquete PBSmapping. >> >> Aquí lo que hice: >> >> library(PBSmapping) >> estados <- importShapefile("Entidades_2013.shp") #Aquí cargamos las entidades federativas (32 entidades) >> zonas <- importShapefile("zm.shp") #Aquí cargamos las zonas metropolitanas del país (345 municipios) >> plotPolys(estados, xlab="Longitud", ylab="Latitud", border="gray") >> addLines(zonas, col="red") >> >> Este es el resultado: https://www.dropbox.com/s/1286j3ppk6nyve6/zonas.tiff >> >> Ahora lo que deseo hacer es agregar datos, por ejemplo el cociente de localización de la industria de la electronica para cada municipio de las zonas. Anteriormente lo he hecho con spplot, pero primero agregando los datos a traves de: >> >> zm <- readOGR(".", "zm") >> datos <- read.csv(ql.csv) #cocientes de localización por sector por municipio (345 obs) >> zonas en data=data.frame(datos) >> >> y después lo he pintado así: >> >> spplot(zonas, c("industria_electronica")) >> >> Este es el resultado: https://www.dropbox.com/s/wbnp5hm79kvqedq/ql_indelec.tiff >> >> Quisiera saber entonces, cómo puedo hacerle de tal manera que pueda pintar los datos del cociente de localización pero teniendo de "background" la división política de las entidades federativas, ya que utilizando el spplot sólo me pinta los 345 municipios que tengo en la capa. >> >> De antemano gracias. >> >> Saludos >> >> Rolando Valdez >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-esRolando Valdez