Re: [R-br] Problemas com fixed breaks

Obs: as faixas de valores com "n" casas decimais foram colocadas em função do erro que mostrei no email anterior, no entanto, ao selecionar o dataframe brks, vcs verão que 2 valores das classes de intervalos vem com erro. 2012/3/30 Julianna Trindade <julianna@jubalitpb.com>
arquivos em anexo
Em 29 de março de 2012 21:33, Benilton Carvalho < beniltoncarvalho@gmail.com> escreveu:
Julianna,
vc precisa dar-nos algo que possamos reproduzir para que possamos ajudar (esse e' o motivo de vc nao ter obtido resposta ao enviar esta mesma msg dois dias atras).
Assumindo que 'dados' nao tenha muito mais que 30-50 linhas, seria muito util que vc postasse o resultado de:
dput(dados$ano_2006)
e tbm nos dissesse qual eh o pacote que te da' a funcao classIntervals(), afinal nao e' algo do base.
benilton
2012/3/29 Julianna Trindade <julianna@jubalitpb.com>
Boa Tarde,
Gostaria de uma solução para o FixedBreaks obedecer os limites superiores e inferiores das minhas classes de intervalos. No entanto, ele deve associar algum método estatístico e burla minha configuração.
Eis o código que eu utilizo:
brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000), main="Fixed") brks<- brks$brks
Eis o breaks gerado pelo R:
c(-11.1, -0.5, 16.665, 41.665, 58.335, 83.335, 110.1)
Alguém pode me ajudar, por favor?
-- Julianna Trindade
"Exalta-te, Senhor, na Tua força! Nós cantaremos e louvaremos o Teu poder."
Salmos 21; 13
_______________________________________________ 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.
_______________________________________________ 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.
-- Julianna Trindade
"Exalta-te, Senhor, na Tua força! Nós cantaremos e louvaremos o Teu poder."
Salmos 21; 13
-- Julianna Trindade "Exalta-te, Senhor, na Tua força! Nós cantaremos e louvaremos o Teu poder." Salmos 21; 13

Mensagem abaixo em nome da Julianna... (dados disponiveis via datafilehost) ==== E quando fui conferir os breaks, os intervalos estavam certos,mas o mapa resultante estava errado. Porque quando eu não importo o csv e uso o dataframe resultante da função, os breaks ficam ok(da maneira que eu especifico em FixedBreaks) e, do contrario, não??? segue o código: ####################################################### # CONSTRUINDO MAPAS ####################################################### ##Code (Comments are preceded by ##) ## Load required packages # Limpando memoria. rm(list=ls(all=TRUE)) library(maps) library(sp) library(maptools) library(spdep) library(classInt) library(RColorBrewer) library(shape) library(SDMTools) library(latticeExtra) library(ReadImages) library(png) rosa_dos_ventos = function(loc=c(-34.5, -8), size = 0.15, bearing=0, cols=1, cex=0.6,...) { cols <- rep(c("white","black"),8) radii <- rep(size/c(1,4,2,4),4) x <- radii[(0:15)+1]*cos((0:15)*pi/8+bearing)+loc[1] y <- radii[(0:15)+1]*sin((0:15)*pi/8+bearing)+loc[2] for (i in 1:15) { x1 <- c(x[i],x[i+1],loc[1]) y1 <- c(y[i],y[i+1],loc[2]) polygon(x1,y1,col=cols[i]) } polygon(c(x[16],x[1],loc[1]),c(y[16],y[1],loc[2]),col=cols[16]) b <- c("O","S","L","N") for (i in 0:3) text((size+par("cxy")[1]-0.40)*cos(bearing+i*pi/2)+loc[1], (size+par("cxy")[2]-0.42)*sin(bearing+i*pi/2)+loc[2],b[i+1],cex=cex) } ## Lendo dados ## http://www.datafilehost.com/download-e5cb7e86.html dados = read.table("dadosJulianna.csv", sep = ",", header = TRUE) # Lendo mapa. mapa = readShapePoly("c:/users/Julianna/Documents/SecSaude/saudemapa.shp") proj4string(mapa) <- CRS("+init=epsg:4291") scaleXY(mapa, 1836656) # arquivo png #img <- readPNG("c:/users/Julianna/Documents/SecSaude/logo_pb.png") # seu arquivo png aqui #set.seed(123) #par(xpd = TRUE) colors <- brewer.pal(7, "Reds") brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000), main="Fixed") brks<- brks$brks ID = match(substr(mapa$CODIGO,1,6),dados$t_indicadores_municipio.f_municipio) dados = dados[ID,] png(filename="c:/mif2006.png", height=750, width=1500) plot(mapa, col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)], axes = TRUE, cex = 1.5, mar=5) ##, xlim=c(-39.7, -34.7), ylim=c(-8.5, -6) ##invisible(text(getSpPPolygonsLabptSlots(mapa), labels=as.character(mapa$NOMEMUN_1), cex=0.65)) title(main = "PORCENTAGEM DE à BITOS INVESTIGADOS\ntipo: mulheres em idade fértil", font.main = 2, cex.main = 1.8) text(-35.7, -6.2, "ANO: 2006", cex = 1.8) legend(-39.6,-7.6, c("Sem informação", "0", "]0,20]", "]20,40]", "]40,60]", "]60,80]","Acima de 80"), fill = colors, bty="n", x.intersp = 1.1, y.intersp = 1.1, cex = 1.6) rosa_dos_ventos(loc=c(-34.5,-8),size=0.17,cex=1.20, bearing=0, cols=1) SpatialPolygonsRescale(layout.scale.bar(), offset = c(-35,-8.30), scale = 1, fill = c("transparent", "black"), plot.grid= FALSE) text(-34.5, -8.35, "110.3 KM", cex= 1.3) #rasterImage(img, xleft = -39.5, ybottom = -6.25, xright = -38.9 , ytop = -6) dev.off()

Nao roei o exemplo mas o seguinte trecho me parece potencialmente com problemas: plot( .... col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)] pq colors deveria ser um vetor com as cores desejadas (e no a funcao colors do RP Outra coisa: o M de CMR é "mínimo" ou seja, procure mandar um código MINIMO reproduzivel, eliminando o que nao é necessário/problema. Isto reduz o tempo gasto de quem quer ajudar e aumenta a probabilidade de obter uma resposta Em Sex, 2012-03-30 às 15:03 +0100, Benilton Carvalho escreveu:
col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)]

Em 30 de março de 2012 11:35, Paulo J Ribeiro Jr <paulojus@leg.ufpr.br>escreveu:
Nao roei o exemplo mas o seguinte trecho me parece potencialmente com problemas:
plot( .... col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)]
pq colors deveria ser um vetor com as cores desejadas (e no a funcao colors do RP
Outra coisa: o M de CMR é "mínimo" ou seja, procure mandar um código MINIMO reproduzivel, eliminando o que nao é necessário/problema.
Isto reduz o tempo gasto de quem quer ajudar e aumenta a probabilidade de obter uma resposta
O meu deu:
class(dados$ano_2006)[1] "integer"> summary(dados$ano_2006) Min. 1st Qu. Median Mean 3rd Qu. Max. -1.0 -1.0 -1.0 13.5 0.0 100.0
Em Sex, 2012-03-30 às 15:03 +0100, Benilton Carvalho escreveu:
col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)]
_______________________________________________ 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.
-- Julianna Trindade "Exalta-te, Senhor, na Tua força! Nós cantaremos e louvaremos o Teu poder." Salmos 21; 13

Julianna, e' possivel que sua variavel 'ano_2006' esteja num formato "diferente" (isso e' so' uma hipotese maluca, nao tenho evidencias para isso)... Entretanto, tente usar os dados a partir do arquivo que voce usou originalmente para essa mensagem... dai' use o seguinte: brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000)) brks<- brks$brks Veja se o problema se repete... Se sim, diga-nos o uqe vc obtem para: class(dados$2006) summary(dados$2006) No meu caso, usando o seu csv do email anterior, eu obtive:
class(dados$ano_2006) [1] "numeric" summary(dados$ano_2006) Min. 1st Qu. Median Mean 3rd Qu. Max. -1.000 0.000 0.000 9.956 0.000 100.000
benilton On 30 March 2012 15:03, Benilton Carvalho <beniltoncarvalho@gmail.com>wrote:
Mensagem abaixo em nome da Julianna... (dados disponiveis via datafilehost)
====
E quando fui conferir os breaks, os intervalos estavam certos,mas o mapa resultante estava errado. Porque quando eu não importo o csv e uso o dataframe resultante da função, os breaks ficam ok(da maneira que eu especifico em FixedBreaks) e, do contrario, não???
segue o código:
####################################################### # CONSTRUINDO MAPAS ####################################################### ##Code (Comments are preceded by ##) ## Load required packages
# Limpando memoria. rm(list=ls(all=TRUE))
library(maps) library(sp) library(maptools) library(spdep) library(classInt) library(RColorBrewer) library(shape) library(SDMTools) library(latticeExtra) library(ReadImages) library(png)
rosa_dos_ventos = function(loc=c(-34.5, -8), size = 0.15, bearing=0, cols=1, cex=0.6,...) { cols <- rep(c("white","black"),8) radii <- rep(size/c(1,4,2,4),4) x <- radii[(0:15)+1]*cos((0:15)*pi/8+bearing)+loc[1] y <- radii[(0:15)+1]*sin((0:15)*pi/8+bearing)+loc[2] for (i in 1:15) { x1 <- c(x[i],x[i+1],loc[1]) y1 <- c(y[i],y[i+1],loc[2]) polygon(x1,y1,col=cols[i]) } polygon(c(x[16],x[1],loc[1]),c(y[16],y[1],loc[2]),col=cols[16]) b <- c("O","S","L","N") for (i in 0:3) text((size+par("cxy")[1]-0.40)*cos(bearing+i*pi/2)+loc[1],
(size+par("cxy")[2]-0.42)*sin(bearing+i*pi/2)+loc[2],b[i+1],cex=cex) }
## Lendo dados ## http://www.datafilehost.com/download-e5cb7e86.html dados = read.table("dadosJulianna.csv", sep = ",", header = TRUE)
# Lendo mapa. mapa = readShapePoly("c:/users/Julianna/Documents/SecSaude/saudemapa.shp") proj4string(mapa) <- CRS("+init=epsg:4291") scaleXY(mapa, 1836656)
# arquivo png #img <- readPNG("c:/users/Julianna/Documents/SecSaude/logo_pb.png") # seu arquivo png aqui #set.seed(123) #par(xpd = TRUE)
colors <- brewer.pal(7, "Reds") brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000), main="Fixed") brks<- brks$brks
ID = match(substr(mapa$CODIGO,1,6),dados$t_indicadores_municipio.f_municipio) dados = dados[ID,]
png(filename="c:/mif2006.png", height=750, width=1500)
plot(mapa, col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)], axes = TRUE, cex = 1.5, mar=5) ##, xlim=c(-39.7, -34.7), ylim=c(-8.5, -6)
##invisible(text(getSpPPolygonsLabptSlots(mapa), labels=as.character(mapa$NOMEMUN_1), cex=0.65))
title(main = "PORCENTAGEM DE à BITOS INVESTIGADOS\ntipo: mulheres em idade fértil", font.main = 2, cex.main = 1.8)
text(-35.7, -6.2, "ANO: 2006", cex = 1.8)
legend(-39.6,-7.6, c("Sem informação", "0", "]0,20]", "]20,40]", "]40,60]", "]60,80]","Acima de 80"), fill = colors, bty="n", x.intersp = 1.1, y.intersp = 1.1, cex = 1.6)
rosa_dos_ventos(loc=c(-34.5,-8),size=0.17,cex=1.20, bearing=0, cols=1)
SpatialPolygonsRescale(layout.scale.bar(), offset = c(-35,-8.30), scale = 1, fill = c("transparent", "black"), plot.grid= FALSE)
text(-34.5, -8.35, "110.3 KM", cex= 1.3)
#rasterImage(img, xleft = -39.5, ybottom = -6.25, xright = -38.9 , ytop = -6)
dev.off()

Estava tentando rodar este código, e vi que falta este arquivoc:/users/Julianna/Documents/SecSaude/saudemapa.shp Daria para enviar?. Mensagem abaixo em nome da Julianna... (dados disponiveis via datafilehost) ==== E quando fui conferir os breaks, os intervalos estavam certos,mas o mapa resultante estava errado. Porque quando eu não importo o csv e uso o dataframe resultante da função, os breaks ficam ok(da maneira que eu especifico em FixedBreaks) e, do contrario, não??? segue o código: ####################################################### # CONSTRUINDO MAPAS ####################################################### ##Code (Comments are preceded by ##) ## Load required packages # Limpando memoria. rm(list=ls(all=TRUE)) library(maps) library(sp) library(maptools) library(spdep) library(classInt) library(RColorBrewer) library(shape) library(SDMTools) library(latticeExtra) library(ReadImages) library(png) rosa_dos_ventos = function(loc=c(-34.5, -8), size = 0.15, bearing=0, cols=1, cex=0.6,...) { cols <- rep(c("white","black"),8) radii <- rep(size/c(1,4,2,4),4) x <- radii[(0:15)+1]*cos((0:15)*pi/8+bearing)+loc[1] y <- radii[(0:15)+1]*sin((0:15)*pi/8+bearing)+loc[2] for (i in 1:15) { x1 <- c(x[i],x[i+1],loc[1]) y1 <- c(y[i],y[i+1],loc[2]) polygon(x1,y1,col=cols[i]) } polygon(c(x[16],x[1],loc[1]),c(y[16],y[1],loc[2]),col=cols[16]) b <- c("O","S","L","N") for (i in 0:3) text((size+par("cxy")[1]-0.40)*cos(bearing+i*pi/2)+loc[1], (size+par("cxy")[2]-0.42)*sin(bearing+i*pi/2)+loc[2],b[i+1],cex=cex) } ## Lendo dados ## http://www.datafilehost.com/download-e5cb7e86.html dados = read.table("dadosJulianna.csv", sep = ",", header = TRUE) # Lendo mapa. mapa = readShapePoly("c:/users/Julianna/Documents/SecSaude/saudemapa.shp") proj4string(mapa) <- CRS("+init=epsg:4291") scaleXY(mapa, 1836656) # arquivo png #img <- readPNG("c:/users/Julianna/Documents/SecSaude/logo_pb.png") # seu arquivo png aqui #set.seed(123) #par(xpd = TRUE) colors <- brewer.pal(7, "Reds") brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000), main="Fixed") brks<- brks$brks ID = match(substr(mapa$CODIGO,1,6),dados$t_indicadores_municipio.f_municipio) dados = dados[ID,] png(filename="c:/mif2006.png", height=750, width=1500) plot(mapa, col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)], axes = TRUE, cex = 1.5, mar=5) ##, xlim=c(-39.7, -34.7), ylim=c(-8.5, -6) ##invisible(text(getSpPPolygonsLabptSlots(mapa), labels=as.character(mapa$NOMEMUN_1), cex=0.65)) title(main = "PORCENTAGEM DE à BITOS INVESTIGADOS\ntipo: mulheres em idade fértil", font.main = 2, cex.main = 1.8) text(-35.7, -6.2, "ANO: 2006", cex = 1.8) legend(-39.6,-7.6, c("Sem informação", "0", "]0,20]", "]20,40]", "]40,60]", "]60,80]","Acima de 80"), fill = colors, bty="n", x.intersp = 1.1, y.intersp = 1.1, cex = 1.6) rosa_dos_ventos(loc=c(-34.5,-8),size=0.17,cex=1.20, bearing=0, cols=1) SpatialPolygonsRescale(layout.scale.bar(), offset = c(-35,-8.30), scale = 1, fill = c("transparent", "black"), plot.grid= FALSE) text(-34.5, -8.35, "110.3 KM", cex= 1.3) #rasterImage(img, xleft = -39.5, ybottom = -6.25, xright = -38.9 , ytop = -6) dev.off()

eu tentei mas como anexo pelo grupo não é permitido. Em 1 de abril de 2012 21:05, Mauro Sznelwar <sznelwar@uol.com.br> escreveu:
** Estava tentando rodar este código, e vi que falta este arquivoc:/users/Julianna/Documents/SecSaude/saudemapa.shp Daria para enviar?.
Mensagem abaixo em nome da Julianna... (dados disponiveis via datafilehost)
====
E quando fui conferir os breaks, os intervalos estavam certos,mas o mapa resultante estava errado. Porque quando eu não importo o csv e uso o dataframe resultante da função, os breaks ficam ok(da maneira que eu especifico em FixedBreaks) e, do contrario, não???
segue o código:
####################################################### # CONSTRUINDO MAPAS ####################################################### ##Code (Comments are preceded by ##) ## Load required packages
# Limpando memoria. rm(list=ls(all=TRUE))
library(maps) library(sp) library(maptools) library(spdep) library(classInt) library(RColorBrewer) library(shape) library(SDMTools) library(latticeExtra) library(ReadImages) library(png)
rosa_dos_ventos = function(loc=c(-34.5, -8), size = 0.15, bearing=0, cols=1, cex=0.6,...) { cols <- rep(c("white","black"),8) radii <- rep(size/c(1,4,2,4),4) x <- radii[(0:15)+1]*cos((0:15)*pi/8+bearing)+loc[1] y <- radii[(0:15)+1]*sin((0:15)*pi/8+bearing)+loc[2] for (i in 1:15) { x1 <- c(x[i],x[i+1],loc[1]) y1 <- c(y[i],y[i+1],loc[2]) polygon(x1,y1,col=cols[i]) } polygon(c(x[16],x[1],loc[1]),c(y[16],y[1],loc[2]),col=cols[16]) b <- c("O","S","L","N") for (i in 0:3) text((size+par("cxy")[1]-0.40)*cos(bearing+i*pi/2)+loc[1],
(size+par("cxy")[2]-0.42)*sin(bearing+i*pi/2)+loc[2],b[i+1],cex=cex) }
## Lendo dados ## http://www.datafilehost.com/download-e5cb7e86.html dados = read.table("dadosJulianna.csv", sep = ",", header = TRUE)
# Lendo mapa. mapa = readShapePoly("c:/users/Julianna/Documents/SecSaude/saudemapa.shp") proj4string(mapa) <- CRS("+init=epsg:4291") scaleXY(mapa, 1836656)
# arquivo png #img <- readPNG("c:/users/Julianna/Documents/SecSaude/logo_pb.png") # seu arquivo png aqui #set.seed(123) #par(xpd = TRUE)
colors <- brewer.pal(7, "Reds") brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000), main="Fixed") brks<- brks$brks
ID = match(substr(mapa$CODIGO,1,6),dados$t_indicadores_municipio.f_municipio) dados = dados[ID,]
png(filename="c:/mif2006.png", height=750, width=1500)
plot(mapa, col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)], axes = TRUE, cex = 1.5, mar=5) ##, xlim=c(-39.7, -34.7), ylim=c(-8.5, -6)
##invisible(text(getSpPPolygonsLabptSlots(mapa), labels=as.character(mapa$NOMEMUN_1), cex=0.65))
title(main = "PORCENTAGEM DE à BITOS INVESTIGADOS\ntipo: mulheres em idade fértil", font.main = 2, cex.main = 1.8)
text(-35.7, -6.2, "ANO: 2006", cex = 1.8)
legend(-39.6,-7.6, c("Sem informação", "0", "]0,20]", "]20,40]", "]40,60]", "]60,80]","Acima de 80"), fill = colors, bty="n", x.intersp = 1.1, y.intersp = 1.1, cex = 1.6)
rosa_dos_ventos(loc=c(-34.5,-8),size=0.17,cex=1.20, bearing=0, cols=1)
SpatialPolygonsRescale(layout.scale.bar(), offset = c(-35,-8.30), scale = 1, fill = c("transparent", "black"), plot.grid= FALSE)
text(-34.5, -8.35, "110.3 KM", cex= 1.3)
#rasterImage(img, xleft = -39.5, ybottom = -6.25, xright = -38.9 , ytop = -6)
dev.off()
_______________________________________________ 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.
-- Julianna Trindade "Exalta-te, Senhor, na Tua força! Nós cantaremos e louvaremos o Teu poder." Salmos 21; 13

use o datafilehost.com e coloque seu shape file la... assumindo que nao sejam informacoes confidenciais... b

o link: http://www.datafilehost.com/download-9e8d2744.html Em 2 de abril de 2012 08:10, Benilton Carvalho <beniltoncarvalho@gmail.com>escreveu:
ahhh, e depois mande o link pra lista... :P
2012/4/2 Benilton Carvalho <beniltoncarvalho@gmail.com>:
use o datafilehost.com e coloque seu shape file la... assumindo que nao sejam informacoes confidenciais...
b
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.
-- Julianna Trindade "Exalta-te, Senhor, na Tua força! Nós cantaremos e louvaremos o Teu poder." Salmos 21; 13

Tentei rodar de novo, mas deu dois problemas: library(maptools) Carregando pacotes exigidos: foreign Carregando pacotes exigidos: lattice Checking rgeos availability: FALSE Note: when rgeos is not available, polygon geometry computations in maptools depend on gpclib, which has a restricted licence. It is disabled by default; to enable gpclib, type gpclibPermit() e depois mapa = readShapePoly("saudemapa.shp") Erro em getinfo.shape(filen) : Error opening SHP file E ainda faltou disponibilizar o arquivo logo_pb.png Em 1 de abril de 2012 21:05, Mauro Sznelwar <sznelwar@uol.com.br> escreveuo: Estava tentando rodar este código, e vi que falta este arquivoc:/users/Julianna/Documents/SecSaude/saudemapa.shp Daria para enviar?. Mensagem abaixo em nome da Julianna... (dados disponiveis via datafilehost) ==== E quando fui conferir os breaks, os intervalos estavam certos,mas o mapa resultante estava errado. Porque quando eu não importo o csv e uso o dataframe resultante da função, os breaks ficam ok(da maneira que eu especifico em FixedBreaks) e, do contrario, não??? segue o código: ####################################################### # CONSTRUINDO MAPAS ####################################################### ##Code (Comments are preceded by ##) ## Load required packages # Limpando memoria. rm(list=ls(all=TRUE)) library(maps) library(sp) library(maptools) library(spdep) library(classInt) library(RColorBrewer) library(shape) library(SDMTools) library(latticeExtra) library(ReadImages) library(png) rosa_dos_ventos = function(loc=c(-34.5, -8), size = 0.15, bearing=0, cols=1, cex=0.6,...) { cols <- rep(c("white","black"),8) radii <- rep(size/c(1,4,2,4),4) x <- radii[(0:15)+1]*cos((0:15)*pi/8+bearing)+loc[1] y <- radii[(0:15)+1]*sin((0:15)*pi/8+bearing)+loc[2] for (i in 1:15) { x1 <- c(x[i],x[i+1],loc[1]) y1 <- c(y[i],y[i+1],loc[2]) polygon(x1,y1,col=cols[i]) } polygon(c(x[16],x[1],loc[1]),c(y[16],y[1],loc[2]),col=cols[16]) b <- c("O","S","L","N") for (i in 0:3) text((size+par("cxy")[1]-0.40)*cos(bearing+i*pi/2)+loc[1], (size+par("cxy")[2]-0.42)*sin(bearing+i*pi/2)+loc[2],b[i+1],cex=cex) } ## Lendo dados ## http://www.datafilehost.com/download-e5cb7e86.html dados = read.table("dadosJulianna.csv", sep = ",", header = TRUE) # Lendo mapa. mapa = readShapePoly("c:/users/Julianna/Documents/SecSaude/saudemapa.shp") proj4string(mapa) <- CRS("+init=epsg:4291") scaleXY(mapa, 1836656) # arquivo png #img <- readPNG("c:/users/Julianna/Documents/SecSaude/logo_pb.png") # seu arquivo png aqui #set.seed(123) #par(xpd = TRUE) colors <- brewer.pal(7, "Reds") brks <- classIntervals(dados$ano_2006, n = 7,style="fixed", intervalClosure="right", fixedBreaks=c(-2, -0.5, 0, 20, 40, 60, 80, 10000), main="Fixed") brks<- brks$brks ID = match(substr(mapa$CODIGO,1,6),dados$t_indicadores_municipio.f_municipio) dados = dados[ID,] png(filename="c:/mif2006.png", height=750, width=1500) plot(mapa, col = colors[findInterval(dados$ano_2006, brks,all.inside=TRUE)], axes = TRUE, cex = 1.5, mar=5) ##, xlim=c(-39.7, -34.7), ylim=c(-8.5, -6) ##invisible(text(getSpPPolygonsLabptSlots(mapa), labels=as.character(mapa$NOMEMUN_1), cex=0.65)) title(main = "PORCENTAGEM DE à BITOS INVESTIGADOS\ntipo: mulheres em idade fértil", font.main = 2, cex.main = 1.8) text(-35.7, -6.2, "ANO: 2006", cex = 1.8) legend(-39.6,-7.6, c("Sem informação", "0", "]0,20]", "]20,40]", "]40,60]", "]60,80]","Acima de 80"), fill = colors, bty="n", x.intersp = 1.1, y.intersp = 1.1, cex = 1.6) rosa_dos_ventos(loc=c(-34.5,-8),size=0.17,cex=1.20, bearing=0, cols=1) SpatialPolygonsRescale(layout.scale.bar(), offset = c(-35,-8.30), scale = 1, fill = c("transparent", "black"), plot.grid= FALSE) text(-34.5, -8.35, "110.3 KM", cex= 1.3) #rasterImage(img, xleft = -39.5, ybottom = -6.25, xright = -38.9 , ytop = -6) dev.off()
participantes (4)
-
Benilton Carvalho
-
Julianna Trindade
-
Mauro Sznelwar
-
Paulo J Ribeiro Jr