簡體   English   中英

用R或Python中的郵政編碼繪制彩色地圖

[英]Plotting color map with zip codes in R or Python

我有一些美國人口統計和公司數據。
我想在一個州或一個較小的地區(例如城市)繪制郵政編碼區域。 每個區域將由特定於該區域的顏色和/或文本注釋。 輸出類似於http://maps.huge.info/,但a)帶有注釋文本; b)pdf輸出; c)R或Python中的腳本。

是否有任何包和代碼可以讓我這樣做?

我假設你想要靜態地圖。

替代文字
(來源: eduardoleoni.com

1)在census.gov獲取zip邊界和狀態邊界的shapefile:

2)使用我在這個SO問題中發布的plot.heat函數。

例如(假設您在map子目錄中有maryland shapefile):

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()

在R中有很多方法可以做到這一點(參見空間視圖 ); 其中許多依賴於“地圖”包

有人可能會有更直接的東西給你,但我發現O'Reilly的'R中的數據混搭'非常有趣......部分地,它是家庭止贖拍賣的空間映射。

http://oreilly.com/catalog/9780596804770/

在Python中,您可以使用美國人口普查中的shapefile和basemap包。 以下是根據人口填寫州的示例。

R中有一個豐富而復雜的軟件包系列,用於繪制,分析和與GIS相關的其他功能。 一個開始的地方是空間數據的CRAN任務視圖:這是一個復雜的,有時是神秘的世界,需要一些工作才能理解。

如果您正在尋找一個免費的,功能強大的地圖應用程序,我可以建議:

MapWindow(mapwindow.com)

TechCrunch Trends的Daniel Levine用R中的maps包做了很好的事情。他的網站上也有代碼。

如果你想學習(類似Java的)新語言,那么保羅關於加工的建議 - 本弗里曾用來制作zipdecode - 也是一個很好的建議。

根據您的應用程序,很長一段時間可能會使用這樣的東西:

http://googlemapsmania.blogspot.com/2006/07/new-google-maps-us-zip-code-mashups.html

映射數據。 如果那不是您想要的,您可以從census.gov獲取原始郵政編碼shapefile並手動完成,這非常痛苦。

此外,如果你還沒有看到它,這是一種與類似數據交互的簡潔方法,並可能提供一些指示:

http://benfry.com/zipdecode/

查看IBM出色的在線可視化工具http://manyeyes.alphaworks.ibm.com/manyeyes/

EDIT FYI,ManyEyes使用Prefuse可視化工具包來實現它的一些功能。 盡管它是基於java的框架,但它們還為Web提供了Flash / ActionScript工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM