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]]