Ich habe eine Frage zum Zeichnen einer Choroplethenkarte. Was wird für das Plotten einer Karte mit benutzerdefinierten Unterbrechungen empfohlen? Und machen Sie es ein bisschen attraktiv.
In meinem Skript habe ich den Befehl plot und spplot verwendet, um einige Daten zu visualisieren, aber ich bin mit dem Ergebnis nicht ganz zufrieden. Es ist leicht zu verstehen, warum. Mit spplot erhalte ich eine Farbrampe , die Farben für verschiedene Werte wiederholt, was etwas seltsam ist. Bei der Verwendung von Plots mit benutzerdefinierten Pausen konnte ich keine besseren Intervalle für die Werte festlegen, sodass beispielsweise Nullwerte auf der Karte weiß sind. Die schiefen Proportionen zwischen Legende und Karte sind vermutlich das Ergebnis von Rstudio.
Also habe ich mich gefragt, ob jemand bessere Vorschläge für das Plotten von Choroplethen-Karten in R mit benutzerdefinierten Unterbrechungen hat.
EDIT 20-02-2013
Wie vorgeschlagen, habe ich ggplot2 zum Erstellen einer Choroplethen-Karte verwendet. Ich habe den folgenden Code verwendet. Ich bin auf zwei Probleme gestoßen. Einer ist, dass nach dem Verstärken der Daten nicht alle Daten aus dem Shapefile in den Datenrahmen übertragen werden. Deshalb muss ich die Variable "id" umbenennen, damit ich die Daten zusammenführen kann. Geringes Problem.
Ein größeres Problem ist, dass trotz der Tatsache, dass die Daten im Datenrahmen korrekt sind, das ggplot eine Karte anzeigt, auf der die Daten falsch sind. Der Farbwert gemäß der Legende entspricht nicht dem Wert der Variablen in den Daten. Übersehen ich hier etwas?
# Plotting polygon shapefiles (try-out)
# Load the packages
require(rgdal)
require(maptools)
require(ggplot2)
gpclibPermit() # required for the fortify method
# Load the shapefile
africa=readOGR("/home/GIS",layer="africaII")
names(africa)
# Load the data on conflict
conflict<-read.csv("africa_conflict.csv", header=TRUE)
names(conflict)
# Merge the data together
africadat<-merge(africa, conflict, by="ISO3")
# Changing the data in the shapefile
africa@data <- africadat
# Fortify so that ggplot can plot
africa.points = fortify(africa,region="ISO3")
# Change "id" to "ISO3"such that the datasets can be merged again
names(africa.points)[names(africa.points)=="id"]<-"ISO3"
africa.df=merge(africa.points,africadat,by="ISO3")
# Plot the data
ggplot(africa.df) +
aes(long,lat,group=group) +
geom_polygon(aes(fill =onset))+
geom_path(color="white") +
coord_equal()
Verknüpfung zu Replikationsdaten
Update 13-11-2015: Link zur Shape-Datei korrigiert . In der Antwort unten finden Sie eine Lösung für die Darstellung des Choropleths.
quelle
ggplot2
von Choropleth-Karten ansehen , die meiner Meinung nach standardmäßig besser aussehen.Antworten:
Ich sehe kein Problem mit dem obigen Code, außer dass Sie 6 klare Ebenen haben
onset
, daher würde ich sie eher als Faktoren als als kontinuierliche Variable behandeln. Notieren Sie denfactor
Aufruf im Code unten.Dieser Code ergibt folgendes Ergebnis:
Wenn Sie benutzerdefinierte Farben möchten, können Sie dies versuchen:
Welches erzeugt dies:
quelle
3
für dieonset
Spalte zugewiesen und zeichnet ein3
im Diagramm. Das scheint zu funktionieren. Vermutlich fehlt mir etwas?Das classInt-Paket verfügt über eine Reihe von Funktionen zum Berechnen von Intervallen für numerische Daten - installieren Sie es und lesen Sie die Dokumente.
quelle
Für die Archive habe ich folgende Lösung verwendet:
quelle