mapa de cores plotagem com códigos postais em R ou Python
Pergunta
Eu tenho alguns dados demográficos e firmographic dos EUA.
Gostaria de traçar áreas Cep em um estado ou uma região menor (por exemplo cidade). Cada área seria anotado por cor e / ou específico de texto para essa área. A saída seria semelhante ao http://maps.huge.info/ mas a) com texto anotado; b) de saída pdf; c) programável em R ou Python.
Existe algum pacote e código que me permite fazer isso?
Solução
Eu estou supondo que você quer mapas estáticos.
(fonte: eduardoleoni.com )
1) Obter o shapefiles do zip fronteiras e < a href = "http://www.census.gov/geo/www/cob/st2000.html" rel = "nofollow noreferrer"> fronteiras do estado em census.gov:
2) Use a função plot.heat I postou neste SO pergunta ??a >.
Por exemplo (supõe que você tem os shapefiles Maryland em mapa subdiretório):
library(maptools)
##substitute your shapefiles here
state.map <- readShapeSpatial("maps/st24_d00.shp")
zip.map <- readShapeSpatial("maps/zt24_d00.shp")
## this is the variable we will be plotting
zip.map@data$noise <- rnorm(nrow(zip.map@data))
## put the lab point x y locations of the zip codes in the data frame for easy retrieval
labelpos <- data.frame(do.call(rbind, lapply(zip.map@polygons, function(x) x@labpt)))
names(labelpos) <- c("x","y")
zip.map@data <- data.frame(zip.map@data, labelpos)
## plot it
png(file="map.png")
## plot colors
plot.heat(zip.map,state.map,z="noise",breaks=c(-Inf,-2,-1,0,1,2,Inf))
## plot text
with(zip.map@data[sample(1:nrow(zip.map@data), 10),] , text(x,y,NAME))
dev.off()
Outras dicas
Existem muitas maneiras de fazer isso em R (ver a vista espacial ); muitos destes depender do "mapas" pacote .
-
Confira este exemplo fresco da eleição dos EUA 2004 . Ele acaba parecendo esta:
-
Aqui está um exemplo um pouco feio de um modelo que usa os "mapas" pacote com "rede".
- Andrew Gelman fez algumas muito agradáveis ??terrenos como este. Ver, por exemplo, este post em estados vermelhos / estados azuis e este acompanhamento pós .
-
Aqui está um exemplo muito simples usando o "gmaps" empacotar , que mostra um mapa de detenções por estado de prisões por 100.000 para Murder:
require(gmaps) data(USArrests) attach(USArrests) grid.newpage() grid.frame(name="map") grid.pack("map",USALevelPlot(states=rownames(USArrests),levels=Murder,col.fun=reds),height=unit(1,'null')) grid.pack("map",gradientLegendGrob(at=quantile(Murder),col.fun=reds),side="bottom",height=unit(.2,'npc')) detach(USArrests)
Alguém pode ter algo mais direto para você, mas eu achei 'mashups de dados em R' de O'Reilly muito interessante ... em parte, é um mapeamento espacial dos leilões casa encerramento.
Em Python, você pode usar shapefiles do censo dos Estados Unidos junto com o pacote basemap
. Aqui está um exemplo de enchimento em estados acordo com a população.
Há uma série rica e sofisticada de pacotes em R a trama, fazer uma análise, e outras funções relacionadas com GIS. Um lugar para começar é o ponto de vista tarefa CRAN em de Dados Espaciais : Este é um mundo complexo e às vezes misterioso, e leva algum trabalho de entender.
Se você estiver procurando por um aplicativo de mapeamento livre, muito funcional, posso sugerir:
MapWindow (mapwindow.com)
código Daniel Levine no TechCrunch Trends tem feito coisas boas com o pacote maps
em R. Ele tem disponível em seu site, também.
A sugestão de Paul de olhar para processamento - que Ben Fry usado para fazer zipdecode -. Também é uma boa, se você estiver a fim de aprender um (Java-like) nova linguagem
Dependendo da sua aplicação, um caminho mais longo seria usar algo como isto:
http: // googlemapsmania .blogspot.com / 2006/07 / New-google-Maps-us-zip-code-mashups.html
Para mapear seus dados. Se isso não fosse bastante o que você queria, você pode obter shapefiles zip code brutos de census.gov e fazê-lo manualmente, o que é uma dor.
Além disso, se você não tê-lo visto, esta é uma maneira elegante de interagir com dados semelhantes, e pode oferecer algumas dicas:
Confira esta excelente ferramenta de visualização on-line pela IBM http://manyeyes.alphaworks.ibm.com/manyeyes/
Editar FYI, ManyEyes usa o Prefuse visualização kit de ferramentas para alguns de seus viz. Mesmo que seja uma estrutura baseada em java, mas também fornecer uma ferramenta Flash / ActionScript para a web.