ANDRÉS FELIPE FLÓREZ RIVERA
2011-Dec-12 21:29 UTC
[R-es] Ayuda con las función readShapePoly de la libreria maptools
Cordial saludo. Estoy graficando un mapa de Colombia en R, esto lo hago con esta funcion: library(maptools) xx <- readShapePoly("COL_adm1.shp",IDvar="NAME_1", proj4string=CRS("+proj=longlat +ellps=clrk66")) mapa<-function(xx,color) { xxx <- xx[xx$NAME_1 =="Antioquia" |xx$NAME_1=="Atlántico" |xx$NAME_1=="Cundinamarca"|xx$NAME_1=="Caldas" |xx$NAME_1=="Santander"|xx$NAME_1=="Norte de Santander" |xx$NAME_1=="Risaralda"|xx$NAME_1=="Bolívar" |xx$NAME_1=="Valle del Cauca"|xx$NAME_1=="Quindío" ,] tmpfl <- paste(tempdir(), "xxpoly", sep="/") writePolyShape(xxx, tmpfl) getinfo.shape(paste(tmpfl, ".shp", sep="")) plot(xx,border="gray",col="white",lwd=0.8,asp=0) plot(xxx, border="black", col=color,lwd=1,asp=0,add=T) text(coordinates(xxx), labels=sapply(slot(xxx, "polygons"),function(i) slot(i, "ID")), cex=0.65,font=2, pos=4, col="black") } mapa(xx,c(rep("yellow",4),rep("darkgreen",3),rep("red",3))) En realidad lo que necesito saber es como hago para extraer las coordendas planas (x,y) de mi mapa que tiene una extención .shp; por otro lado tengo otra función que me hace lo mismo pero esta vez el mapa tienen extención .RData library("RColorBrewer") library(sp) library(maps) library(ggplot2) ub_colombia="C:\\Documents and Settings\\aflorer\\Escritorio\\COL_adm1.Rdata" #Creamos los objetos de R load(ub_colombia) colombia=gadm valores=c(round(runif(32,0,100))); #Seleccionamos un objeto de mapa mapa = colombia #str(mapa) #Añadimos los valores que deseamos representar mapa@data=data.frame(valores) YlOrBr <- (c("#00007F", "blue", "#007FFF", "cyan","#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000")) pal<-colorRampPalette(brewer.pal(9,"Blues")) YlOrBr <- pal(100) spplot(mapa,c("valores"),col.regions=c("white","red","yellow","darkgreen"),cut=3,colorkey=F,main="ÍNDICE DE SATISFACCIÓN POR DEPARTAMENTO") igual que en el caso anterior me interesa saber como hago para estraer las coordenadas (x,y) para poderlas graficar con ggplot o qplot. Adjunto envio los dos mapas, gracias por la atención. ANDRÉS FELIPE FLÓREZ RIVERA UNIVERSIDAD NACIONAL DE COLOMBIA ESTADISTICA 2010 [[alternative HTML version deleted]]
Carlos Ortega
2011-Dec-12 21:48 UTC
[R-es] Ayuda con las función readShapePoly de la libreria maptools
Hola, Alguien preguntó recientemente por lo mismo en esta lista y la función que se le proporcionó fue esta: coordinates() Saludos, Carlos Ortega www.qualityexcellence.es El 12 de diciembre de 2011 22:29, ANDRÉS FELIPE FLÓREZ RIVERA < andreselestadistico@hotmail.com> escribió:> > Cordial saludo. > > Estoy graficando un mapa de Colombia en R, esto lo hago con esta funcion: > > > library(maptools) > xx <- readShapePoly("COL_adm1.shp",IDvar="NAME_1", > proj4string=CRS("+proj=longlat +ellps=clrk66")) > mapa<-function(xx,color) > { > xxx <- xx[xx$NAME_1 =="Antioquia" |xx$NAME_1=="Atlántico" > |xx$NAME_1=="Cundinamarca"|xx$NAME_1=="Caldas" > |xx$NAME_1=="Santander"|xx$NAME_1=="Norte de Santander" > |xx$NAME_1=="Risaralda"|xx$NAME_1=="Bolívar" > |xx$NAME_1=="Valle del Cauca"|xx$NAME_1=="Quindío" ,] > tmpfl <- paste(tempdir(), "xxpoly", sep="/") > writePolyShape(xxx, tmpfl) > getinfo.shape(paste(tmpfl, ".shp", sep="")) > plot(xx,border="gray",col="white",lwd=0.8,asp=0) > plot(xxx, border="black", col=color,lwd=1,asp=0,add=T) > text(coordinates(xxx), labels=sapply(slot(xxx, "polygons"),function(i) > slot(i, "ID")), cex=0.65,font=2, pos=4, col="black") > } > mapa(xx,c(rep("yellow",4),rep("darkgreen",3),rep("red",3))) > > En realidad lo que necesito saber es como hago para extraer las coordendas > planas (x,y) de mi mapa que tiene una extención .shp; por otro lado tengo > otra función que me hace lo mismo pero esta vez el mapa tienen extención > .RData > > library("RColorBrewer") > library(sp) > library(maps) > library(ggplot2) > ub_colombia="C:\\Documents and > Settings\\aflorer\\Escritorio\\COL_adm1.Rdata" > #Creamos los objetos de R > load(ub_colombia) > colombia=gadm > valores=c(round(runif(32,0,100))); > #Seleccionamos un objeto de mapa > mapa = colombia > #str(mapa) > #Añadimos los valores que deseamos representar > mapa@data=data.frame(valores) > YlOrBr <- (c("#00007F", "blue", "#007FFF", "cyan","#7FFF7F", "yellow", > "#FF7F00", "red", "#7F0000")) > pal<-colorRampPalette(brewer.pal(9,"Blues")) > YlOrBr <- pal(100) > spplot(mapa,c("valores"),col.regions=c("white","red","yellow","darkgreen"),cut=3,colorkey=F,main="ÍNDICE > DE SATISFACCIÓN POR DEPARTAMENTO") > > igual que en el caso anterior me interesa saber como hago para estraer las > coordenadas (x,y) para poderlas graficar con ggplot o qplot. > > Adjunto envio los dos mapas, gracias por la atención. > > > > ANDRÉS FELIPE FLÓREZ RIVERA > UNIVERSIDAD NACIONAL DE COLOMBIA > ESTADISTICA 2010 > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Jorge I Velez
2011-Dec-12 21:52 UTC
[R-es] Ayuda con las función readShapePoly de la libreria maptools
Hola Andres, Creo que necesitas la funcion coordinates(). Por cierto, podrias cambiar los "|" en tu funcion "mapa" por subset(x, NAME_1 %in% c("Antioquia", "Atlántico", "Cundinamarca", "Caldas", "Santander", "Norte de Santander", "Risaralda", "Bolívar", "Valle del Cauca", "Quindío") Dale una mirada a ?subset y ?"%in%". Saludos, Jorge.- 2011/12/12 ANDRÉS FELIPE FLÓREZ RIVERA <>> > Cordial saludo. > > Estoy graficando un mapa de Colombia en R, esto lo hago con esta funcion: > > > library(maptools) > xx <- readShapePoly("COL_adm1.shp",IDvar="NAME_1", > proj4string=CRS("+proj=longlat +ellps=clrk66")) > mapa<-function(xx,color) > { > xxx <- xx[xx$NAME_1 =="Antioquia" |xx$NAME_1=="Atlántico" > |xx$NAME_1=="Cundinamarca"|xx$NAME_1=="Caldas" > |xx$NAME_1=="Santander"|xx$NAME_1=="Norte de Santander" > |xx$NAME_1=="Risaralda"|xx$NAME_1=="Bolívar" > |xx$NAME_1=="Valle del Cauca"|xx$NAME_1=="Quindío" ,] > tmpfl <- paste(tempdir(), "xxpoly", sep="/") > writePolyShape(xxx, tmpfl) > getinfo.shape(paste(tmpfl, ".shp", sep="")) > plot(xx,border="gray",col="white",lwd=0.8,asp=0) > plot(xxx, border="black", col=color,lwd=1,asp=0,add=T) > text(coordinates(xxx), labels=sapply(slot(xxx, "polygons"),function(i) > slot(i, "ID")), cex=0.65,font=2, pos=4, col="black") > } > mapa(xx,c(rep("yellow",4),rep("darkgreen",3),rep("red",3))) > > En realidad lo que necesito saber es como hago para extraer las coordendas > planas (x,y) de mi mapa que tiene una extención .shp; por otro lado tengo > otra función que me hace lo mismo pero esta vez el mapa tienen extención > .RData > > library("RColorBrewer") > library(sp) > library(maps) > library(ggplot2) > ub_colombia="C:\\Documents and > Settings\\aflorer\\Escritorio\\COL_adm1.Rdata" > #Creamos los objetos de R > load(ub_colombia) > colombia=gadm > valores=c(round(runif(32,0,100))); > #Seleccionamos un objeto de mapa > mapa = colombia > #str(mapa) > #Añadimos los valores que deseamos representar > mapa@data=data.frame(valores) > YlOrBr <- (c("#00007F", "blue", "#007FFF", "cyan","#7FFF7F", "yellow", > "#FF7F00", "red", "#7F0000")) > pal<-colorRampPalette(brewer.pal(9,"Blues")) > YlOrBr <- pal(100) > spplot(mapa,c("valores"),col.regions=c("white","red","yellow","darkgreen"),cut=3,colorkey=F,main="ÍNDICE > DE SATISFACCIÓN POR DEPARTAMENTO") > > igual que en el caso anterior me interesa saber como hago para estraer las > coordenadas (x,y) para poderlas graficar con ggplot o qplot. > > Adjunto envio los dos mapas, gracias por la atención. > > > > ANDRÉS FELIPE FLÓREZ RIVERA > UNIVERSIDAD NACIONAL DE COLOMBIA > ESTADISTICA 2010 > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]