web-dev-qa-db-de.com

Zeichnen einer Farbkarte mit Postleitzahlen in R oder Python

Ich habe einige demografische und firmographische Daten aus den USA.
Ich möchte PLZ-Gebiete in einem Bundesstaat oder einer kleineren Region (z. B. Stadt) zeichnen. Jeder Bereich wird mit Farbe und/oder Text versehen, der für diesen Bereich spezifisch ist. Die Ausgabe wäre ähnlich wie http://maps.huge.info/ , aber a) mit kommentiertem Text; b) pdf-Ausgabe; c) Skriptfähig in R oder Python.

Gibt es ein Paket und einen Code, mit dem ich dies tun kann?

27
gappy

Ich gehe davon aus, dass Sie statische Karten wünschen. 

alter Text http://files.eduardoleoni.com/mapUS.png

1) Erhalten Sie die Shapefiles der Zip Grenzen und State Grenzen bei census.gov: 

2) Verwenden Sie die plot.heat-Funktion, die ich in dieser SO -Frage gepostet habe.

Zum Beispiel (vorausgesetzt, Sie haben die Maryland-Shapefiles im Unterverzeichnis map):

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
[email protected]$noise <- rnorm(nrow([email protected]))
## 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([email protected], function(x) [email protected])))
names(labelpos) <- c("x","y")                        
[email protected] <- data.frame([email protected], 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([email protected][sample(1:nrow([email protected]), 10),] , text(x,y,NAME))
dev.off()
37
Eduardo Leoni

Es gibt viele Möglichkeiten, dies in R zu tun (siehe räumliche Ansicht ); viele dieser hängen vom "maps" -Paket ab .

9
Shane

Jemand mag etwas direkteres für Sie haben, aber ich fand O'Reillys 'Data Mashups in R' sehr interessant ... zum Teil handelt es sich dabei um eine räumliche Abbildung von Auktionen für Zwangsversteigerungen.

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

3
William Doane

In Python können Sie Shapefiles der US-Volkszählung zusammen mit dem Paket basemap verwenden. Hier ist ein Beispiel für Befüllen in Staaten nach Bevölkerung.

2
endolith

Es gibt eine reichhaltige und ausgeklügelte Reihe von Paketen in R zum Plotten, Analysieren und für andere Funktionen, die sich auf GIS beziehen. Ein Ansatzpunkt ist die CRAN-Taskansicht in Spatial Data : Dies ist eine komplexe und manchmal geheimnisvolle Welt, für die etwas Arbeit erforderlich ist. 

Wenn Sie nach einer kostenlosen, sehr funktionalen Kartenanwendung suchen, kann ich Folgendes vorschlagen:

MapWindow (mapwindow.com)

1
pbleic

Daniel Levine bei TechCrunch Trends hat mit dem maps-Paket in R schöne Dinge getan. Er hat auch Code auf seiner Website.

Pauls Vorschlag, sich mit der Verarbeitung zu beschäftigen, die Ben Fry für das Erstellen von ZIP-Codes verwendet hat, ist auch gut, wenn Sie eine (Java-ähnliche) neue Sprache lernen möchten.

1
Matt Parker

Schauen Sie sich dieses hervorragende Online-Visualisierungstool von IBM http://manyeyes.alphaworks.ibm.com/manyeyes/ an.

EDITFYI, verwendet ManyEyes das Visualisierungs-Toolkit Prefuse für einige seiner Eigenschaften. Obwohl es sich um ein Java-basiertes Framework handelt, bieten sie auch ein Flash/ActionScript-Tool für das Web.

0
Amro

Abhängig von Ihrer Anwendung könnte es ein langer Weg sein, etwas wie folgt zu verwenden:

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

Um Ihre Daten abzubilden. Wenn das nicht ganz das war, was Sie wollten, können Sie rohe Postleitzahl-Shapefiles von census.gov erhalten und es manuell tun, was ziemlich schmerzhaft ist.

Wenn Sie es noch nicht gesehen haben, ist dies eine nette Möglichkeit, mit ähnlichen Daten zu interagieren, und bietet möglicherweise einige Hinweise:

http://benfry.com/zipdecode/

0
Paul McMillan