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ás em 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-td4435177.html

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