Colorir alguns municípios em um mapa estadual com cores distintas

Boa tarde pessoal, Gostaria de saber se alguém tem alguma dica de como colorir alguns municipios em um mapa estadual (extensão shp) com cores distintas. Preciso colorir 7 municipios no mapa do Estado de Goiás com cores distintas (cada município com uma cor diferente), mas não estou conseguindo. Tenho tentado, sem sucesso, da seguinte forma: plot(mapa, axes=TRUE, col=mapa$Nome_Munic=="Santa Helena de Goiás") plot(mapa, col=mapa$Nome_Munic=="Chapadão do Céu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Montividiu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Acreúna", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Perolândia", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Palmeiras de Goiás", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Cristalina", add=TRUE) Apesar de conseguir colorir todos os 7 municipios, com os comando acima, todos os 7 ficam com a mesma cor. Certo de contar com a boa vontade de todos, agradeço antecipadamente. Att., -- Wirton Macedo Coutinho Pesquisador Fitopatologia Embrapa Algodão Rua Oswaldo Cruz, 1143, Centenário Campina Grande PB CEP 28428-095

Bom, seu problema é mais ou menos isso. #abrindo pacote pra plotar mapas, assumo que vc ta usando esse, o maptools library(maptools) #lendo um mapa pra exemplo mapa<- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1], IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66")) #mapa summary(mapa) #informações aqui mapa@data #vamo pega o nome das cidades mapa@data$NAME #o problema que vc ta fazendo isso plot(mapa, axes=TRUE, col=mapa@data$NAME=="Alamance") plot(mapa, col=mapa@data$NAME=="Avery", add=TRUE) plot(mapa, col=mapa@data$NAME=="Buncombe", add=TRUE) #no col vc ta pondo essa informação mapa@data$NAME=="Alamance" #que é sempre 1, logo vc colore de preto, 1 na palleta default é preto, true é igual 1, tem 0 0 0 que é branco e 1 que é preto sum(mapa@data$NAME=="Alamance") #vc precisa de numeros diferentes pra cores #ou o nome da cor pra cidade #ou faze uma palleta #mas assim vc tem numeros diferentes as.numeric(mapa@data$NAME) #e vai sair cores diferentes, olha esse plot, note o que to usando no col. plot(mapa, axes=TRUE, col=as.numeric(mapa@data$NAME)) #nesse exemplo vc ta usando essas cores (numeros) pra esses lugares data.frame(cores=as.numeric(mapa@data$NAME),localidade=mapa@data$NAME) #então faz um vetor, com o numero de cidades, e escrever "black", "blue", as cores que vc quer por cidade, ou usa numeros, ou usa uma palleta pronta, tipo as que vem no pacote Rcolorbrewer. Bem espero ter ajudado. Em 25 de junho de 2012 13:00, Wirton Macedo Coutinho <wirton_coutinho@yahoo.com.br> escreveu:
Boa tarde pessoal,
Gostaria de saber se alguém tem alguma dica de como colorir alguns municipios em um mapa estadual (extensão shp) com cores distintas.
Preciso colorir 7 municipios no mapa do Estado de Goiás com cores distintas (cada município com uma cor diferente), mas não estou conseguindo.
Tenho tentado, sem sucesso, da seguinte forma:
plot(mapa, axes=TRUE, col=mapa$Nome_Munic=="Santa Helena de Goiás") plot(mapa, col=mapa$Nome_Munic=="Chapadão do Céu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Montividiu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Acreúna", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Perolândia", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Palmeiras de Goiás", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Cristalina", add=TRUE)
Apesar de conseguir colorir todos os 7 municipios, com os comando acima, todos os 7 ficam com a mesma cor.
Certo de contar com a boa vontade de todos, agradeço antecipadamente.
Att.,
-- Wirton Macedo Coutinho Pesquisador Fitopatologia Embrapa Algodão Rua Oswaldo Cruz, 1143, Centenário Campina Grande PB CEP 28428-095
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

http://r-br.2285057.n4.nabble.com/R-br-Apostila-de-R-Jackson-Aquino-td443517... Olhe esse post antigo. Tem um link com uma apostila muito boa pra ter uma ideia de como mexer com mapas, o basico. Capitulo 11 mata sua duvida e muito mais. Em portugues, muito bem escrito, uma sugestão de leitura que vi na lista aqui e me ajudou muito. Em 25 de junho de 2012 16:14, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Bom, seu problema é mais ou menos isso.
#abrindo pacote pra plotar mapas, assumo que vc ta usando esse, o maptools library(maptools)
#lendo um mapa pra exemplo mapa<- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1], IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
#mapa summary(mapa) #informações aqui mapa@data #vamo pega o nome das cidades mapa@data$NAME
#o problema que vc ta fazendo isso plot(mapa, axes=TRUE, col=mapa@data$NAME=="Alamance") plot(mapa, col=mapa@data$NAME=="Avery", add=TRUE) plot(mapa, col=mapa@data$NAME=="Buncombe", add=TRUE)
#no col vc ta pondo essa informação mapa@data$NAME=="Alamance" #que é sempre 1, logo vc colore de preto, 1 na palleta default é preto, true é igual 1, tem 0 0 0 que é branco e 1 que é preto sum(mapa@data$NAME=="Alamance")
#vc precisa de numeros diferentes pra cores #ou o nome da cor pra cidade #ou faze uma palleta #mas assim vc tem numeros diferentes as.numeric(mapa@data$NAME)
#e vai sair cores diferentes, olha esse plot, note o que to usando no col. plot(mapa, axes=TRUE, col=as.numeric(mapa@data$NAME))
#nesse exemplo vc ta usando essas cores (numeros) pra esses lugares data.frame(cores=as.numeric(mapa@data$NAME),localidade=mapa@data$NAME)
#então faz um vetor, com o numero de cidades, e escrever "black", "blue", as cores que vc quer por cidade, ou usa numeros, ou usa uma palleta pronta, tipo as que vem no pacote Rcolorbrewer.
Bem espero ter ajudado.
Em 25 de junho de 2012 13:00, Wirton Macedo Coutinho <wirton_coutinho@yahoo.com.br> escreveu:
Boa tarde pessoal,
Gostaria de saber se alguém tem alguma dica de como colorir alguns municipios em um mapa estadual (extensão shp) com cores distintas.
Preciso colorir 7 municipios no mapa do Estado de Goiás com cores distintas (cada município com uma cor diferente), mas não estou conseguindo.
Tenho tentado, sem sucesso, da seguinte forma:
plot(mapa, axes=TRUE, col=mapa$Nome_Munic=="Santa Helena de Goiás") plot(mapa, col=mapa$Nome_Munic=="Chapadão do Céu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Montividiu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Acreúna", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Perolândia", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Palmeiras de Goiás", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Cristalina", add=TRUE)
Apesar de conseguir colorir todos os 7 municipios, com os comando acima, todos os 7 ficam com a mesma cor.
Certo de contar com a boa vontade de todos, agradeço antecipadamente.
Att.,
-- Wirton Macedo Coutinho Pesquisador Fitopatologia Embrapa Algodão Rua Oswaldo Cruz, 1143, Centenário Campina Grande PB CEP 28428-095
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Grato Augusto C. A. Ribas
Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

Boa tarde a todos, Com as dicas do Augusto Ribas e do prof. Paulo Justiniano, consegui, por meio de um post na internet, resolver o meu problema de colorir com cores distintas alguns municípios do Estado de Goiásem um mapa com extensão shp. O código final, a quem possa interessar, ficou assim: require(maptools) map <- readShapePoly(file.choose()) summary(map) map$Nome_Munic colors <- c("lightskyblue3", "antiquewhite1", "darksalmon", "cornflowerblue", "gray94", "darkkhaki", "darkslategray3", "bisque2") counties2 <- c("Acreúna", "Chapadão do Céu", "Cristalina", "Montividiu", "Palmeiras de Goiás", "Santa Helena de Goiás", "Silvânia") counties.all = map$Nome_Munic n.all = length(counties.all) col.map = numeric(n.all) for (i in 1:length(counties2)){ col.map[grep(counties2[i],counties.all)] = runif(1) } c2 = col.map!=0 col.map2=col.map col.map2[!c2]= gray(0.94) col.map2[c2]=colors plot(map,col=col.map2,axes=T) legend("topleft", legend=c("Acreúna", "Chapadão do Céu", "Cristalina", "Montividiu", "Palmeiras de Goiás", "Santa Helena de Goiás", "Silvânia"), cex=0.9, bty="n", fill= c("lightskyblue3", "antiquewhite1", "darksalmon", "cornflowerblue", "darkkhaki", "darkslategray3", "bisque2")) Obrigado a todos, Att., ----- Wirton Macedo Coutinho Pesquisador - Fitopatologia Embrapa Algodão Rua Oswaldo Cruz, 1143, Centenário Campina Grande, PB CEP 58429-095
________________________________ De: Augusto Ribas <ribas.aca@gmail.com> Para: r-br@listas.c3sl.ufpr.br; Wirton Macedo Coutinho <wirton_coutinho@yahoo.com.br> Enviadas: Segunda-feira, 25 de Junho de 2012 17:27 Assunto: Re: [R-br] Colorir alguns municípios em um mapa estadual com cores distintas
http://r-br.2285057.n4.nabble.com/R-br-Apostila-de-R-Jackson-Aquino-td443517...
Olhe esse post antigo. Tem um link com uma apostila muito boa pra ter uma ideia de como mexer com mapas, o basico. Capitulo 11 mata sua duvida e muito mais. Em portugues, muito bem escrito, uma sugestão de leitura que vi na lista aqui e me ajudou muito.
Em 25 de junho de 2012 16:14, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Bom, seu problema é mais ou menos isso.
#abrindo pacote pra plotar mapas, assumo que vc ta usando esse, o maptools library(maptools)
#lendo um mapa pra exemplo mapa<- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1], IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
#mapa summary(mapa) #informações aqui mapa@data #vamo pega o nome das cidades mapa@data$NAME
#o problema que vc ta fazendo isso plot(mapa, axes=TRUE, col=mapa@data$NAME=="Alamance") plot(mapa, col=mapa@data$NAME=="Avery", add=TRUE) plot(mapa, col=mapa@data$NAME=="Buncombe", add=TRUE)
#no col vc ta pondo essa informação mapa@data$NAME=="Alamance" #que é sempre 1, logo vc colore de preto, 1 na palleta default é preto, true é igual 1, tem 0 0 0 que é branco e 1 que é preto sum(mapa@data$NAME=="Alamance")
#vc precisa de numeros diferentes pra cores #ou o nome da cor pra cidade #ou faze uma palleta #mas assim vc tem numeros diferentes as.numeric(mapa@data$NAME)
#e vai sair cores diferentes, olha esse plot, note o que to usando no col. plot(mapa, axes=TRUE, col=as.numeric(mapa@data$NAME))
#nesse exemplo vc ta usando essas cores (numeros) pra esses lugares data.frame(cores=as.numeric(mapa@data$NAME),localidade=mapa@data$NAME)
#então faz um vetor, com o numero de cidades, e escrever "black", "blue", as cores que vc quer por cidade, ou usa numeros, ou usa uma palleta pronta, tipo as que vem no pacote Rcolorbrewer.
Bem espero ter ajudado.
Em 25 de junho de 2012 13:00, Wirton Macedo Coutinho <wirton_coutinho@yahoo.com.br> escreveu:
Boa tarde pessoal,
Gostaria de saber se alguém tem alguma dica de como colorir alguns municipios em um mapa estadual (extensão shp) com cores distintas.
Preciso colorir 7 municipios no mapa do Estado de Goiás com cores distintas (cada município com uma cor diferente), mas não estou conseguindo.
Tenho tentado, sem sucesso, da seguinte forma:
plot(mapa, axes=TRUE, col=mapa$Nome_Munic=="Santa Helena de Goiás") plot(mapa, col=mapa$Nome_Munic=="Chapadão do Céu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Montividiu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Acreúna", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Perolândia", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Palmeiras de Goiás", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Cristalina", add=TRUE)
Apesar de conseguir colorir todos os 7 municipios, com os comando acima, todos os 7 ficam com a mesma cor.
Certo de contar com a boa vontade de todos, agradeço antecipadamente.
Att.,
-- Wirton Macedo Coutinho Pesquisador Fitopatologia Embrapa Algodão Rua Oswaldo Cruz, 1143, Centenário Campina Grande PB CEP 28428-095
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Grato Augusto C. A. Ribas
Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056
-- Grato Augusto C. A. Ribas
Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

no seus comandos plot() voce esqueceu e incluir o argumento "col=" efinindo a cor desejada em cada município On Mon, 25 Jun 2012, Wirton Macedo Coutinho wrote:
Boa tarde pessoal,
Gostaria de saber se alguém tem alguma dica de como colorir alguns municipios em um mapa estadual (extensão shp) com cores distintas.
Preciso colorir 7 municipios no mapa do Estado de Goiás com cores distintas (cada município com uma cor diferente), mas não estou conseguindo.
Tenho tentado, sem sucesso, da seguinte forma:
plot(mapa, axes=TRUE, col=mapa$Nome_Munic=="Santa Helena de Goiás") plot(mapa, col=mapa$Nome_Munic=="Chapadão do Céu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Montividiu", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Acreúna", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Perolândia", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Palmeiras de Goiás", add=TRUE) plot(mapa, col=mapa$Nome_Munic=="Cristalina", add=TRUE)
Apesar de conseguir colorir todos os 7 municipios, com os comando acima, todos os 7 ficam com a mesma cor.
Certo de contar com a boa vontade de todos, agradeço antecipadamente.
Att.,
-- Wirton Macedo Coutinho Pesquisador Fitopatologia Embrapa Algodão Rua Oswaldo Cruz, 1143, Centenário Campina Grande PB CEP 28428-095
participantes (3)
-
Augusto Ribas
-
Paulo Justiniano
-
Wirton Macedo Coutinho