在 R 或 Python 中绘制带有邮政编码的彩色地图
我有一些美国人口统计和公司统计数据。
我想绘制一个州或较小地区(例如城市)的邮政编码区域。每个区域都将用特定于该区域的颜色和/或文本进行注释。输出将类似于 http://maps.huge.info/ 但 a) 带有注释文本; b) pdf 输出; c) 可使用 R 或 Python 编写脚本。
有没有任何软件包和代码可以让我做到这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
根据您的应用程序,一个很长的方法可能是使用类似这样的内容:
http://googlemapsmania.blogspot.com/2006/07/new-google-maps-us-zip-code-mashups.html
映射您的数据。如果这不是您想要的,您可以从 census.gov 获取原始邮政编码形状文件并手动执行,这非常痛苦。
另外,如果您还没有看到它,这是与类似数据交互的一种巧妙方式,并且可能会提供一些指示:
http://benfry.com/zipdecode/
Depending on your application, a long way around might be to use something like this:
http://googlemapsmania.blogspot.com/2006/07/new-google-maps-us-zip-code-mashups.html
To map your data. If that wasn't quite what you wanted, you can get raw zip code shapefiles from census.gov and do it manually, which is quite a pain.
Also, if you haven't seen it, this is a neat way to interact with similar data, and might offer some pointers:
http://benfry.com/zipdecode/
看看 IBM 这个出色的在线可视化工具
http://manyeyes.alphaworks.ibm.com/manyeyes/
编辑< /strong> 仅供参考,ManyEyes 在其某些可视化中使用 Prefuse 可视化工具包。尽管它是一个基于 java 的框架,但他们也为 Web 提供了 Flash/ActionScript 工具。
Check out this excellent online visualization tool by IBM
http://manyeyes.alphaworks.ibm.com/manyeyes/
EDIT FYI, ManyEyes uses the Prefuse visualization toolkit for some of its viz. Even though it is a java-based framework, they also provide a Flash/ActionScript tool for the web.
在 R 中,有很多方法可以做到这一点(请参阅空间视图 );其中许多依赖于“maps”包。
查看这个美国 2004 年大选的精彩示例。它最终看起来像这样:
这是一个稍微丑陋的模型示例 使用带有“lattice”的“maps”包。
这是一个非常简单的示例使用“gmaps”包,显示了按州划分的每 10 万人因谋杀被捕的逮捕情况地图:
<前><代码>要求(gmap)
数据(美国逮捕)
附上(美国逮捕)
grid.newpage()
grid.frame(名称=“地图”)
grid.pack(“地图”,USALevelPlot(states=rownames(USArrests),levels=Murder,col.fun=reds),height=unit(1,'null'))
grid.pack("地图",gradientLegendGrob(at=分位数(谋杀),col.fun=reds),side="底部",height=unit(.2,'npc'))
分离(美国逮捕)
There are many ways to do this in R (see the spatial view); many of these depend on the "maps" package.
Check out this cool example of the US 2004 election. It ends up looking like this:
Here's a slightly ugly example of a model that uses the "maps" package with "lattice".
Here's a very simple example using the "gmaps" package, which shows a map of Arrests by state for arrests per 100,000 for Murder:
有人可能会为您提供更直接的信息,但我发现 O'Reilly 的“R 中的数据混搭”非常有趣……在某种程度上,它是房屋止赎拍卖的空间映射。
http://oreilly.com/catalog/9780596804770/
Someone may have something more direct for you, but I found O'Reilly's 'Data Mashups in R' very interesting... in part, it's a spatial mapping of home foreclosure auctions.
http://oreilly.com/catalog/9780596804770/
在 Python 中,您可以使用美国人口普查中的 shapefile 以及
basemap
包。以下是根据人口填写州的示例。In Python, you can use shapefiles from the US census along with the
basemap
package. Here is an example of filling in states according to population.R中有一系列丰富而复杂的包来绘制、分析以及与GIS相关的其他功能。一个起点是 空间数据 上的 CRAN 任务视图:
这是一个复杂且有时神秘的世界,需要一些努力才能理解。
如果您正在寻找一个免费的、功能强大的地图应用程序,我可以建议您:
MapWindow (mapwindow.com)
There is a rich and sophisticated series of packages in R to plot, do analysis, and other functions related to GIS. One place to get started is the CRAN task view on Spatial Data:
This is a complex and sometimes arcane world, and takes some work to understand.
If you are looking for a free, very functional mapping application, may I suggest:
MapWindow ( mapwindow.com)
TechCrunch Trends 的 Daniel Levine 使用 R 中的
maps
包做了很多好事。他的网站上也有可用的代码。如果您准备学习一门(类似 Java 的)新语言,Paul 建议研究一下 Processing(Ben Fry 曾用它来制作 zipdecode),这也是一个不错的建议。
Daniel Levine at TechCrunch Trends has done nice things with the
maps
package in R. He has code available on his site, too.Paul's suggestion of looking into Processing - which Ben Fry used to make zipdecode - is also a good one, if you're up for learning a (Java-like) new language.
我假设您想要静态地图。
(来源:eduardoleoni.com)
1)获取形状文件zip 边界和 state census.gov 边界:
2) 使用我在此 所以问题。
例如(假设您的地图子目录中有马里兰州形状文件):
I am assuming you want static maps.
(source: eduardoleoni.com)
1) Get the shapefiles of the zip boundaries and state boundaries at census.gov:
2) Use the plot.heat function I posted in this SO question.
For example (assumes you have the maryland shapefiles in the map subdirectory):