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?
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()
Es gibt viele Möglichkeiten, dies in R zu tun (siehe räumliche Ansicht ); viele dieser hängen vom "maps" -Paket ab .
Schauen Sie sich diese cooles Beispiel für die US-Wahlen von 2004 an. Es sieht so aus: alter Text http://www.ai.rug.nl/~hedderik/R/US2004/US04Election-PopGraded.png
Hier ist ein etwas hässliches Beispiel für ein Modell das das "maps" -Paket mit "gitter" verwendet.
Hier ist ein sehr einfaches Beispiel mit dem "gmaps" -Paket , das eine Karte der Festnahmen pro 100.000 Festnahmen pro Staat für Mord zeigt:
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)
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.
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.
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)
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.
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.
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: