Wie erstelle ich eine attraktive Choroplethenkarte in R?


18

Ich habe mit Choroplethen-Mapping-Techniken in R experimentiert und die Vorteile von ggplot2 für die Erstellung von schönen Diagrammen in einem leistungsstarken Datenanalysepaket genutzt.

Beim Mapping habe ich keine Ergebnisse erzielt, die mit denen vergleichbar sind, die ich routinemäßig von QGIS erhalte. Unter Verwendung von Datenflussdaten in Sheffield (vollständig replizierbare Daten und .qgs-Datei hier ) hat QGIS auf einfache Weise Folgendes erstellt:

QGIS-Bild

Das Beste, was ich mit R (mit dem hier beschriebenen Code ) produzieren konnte, waren diese beiden Maps, die erste mit GISTools, die zweite mit ggplot2:

GISTools Choroplethen ggplot2 choro

Für mich ist die Option ggplot2 weitaus attraktiver, wenn ich nur das Problem der fehlerhaften Zeilen lösen könnte (wahrscheinlich ein Problem mit dem Befehl fortify () oder nicht das Einlesen von Shapefiles mit readOGR (), wie hier beschrieben .)

Die Frage ist also zweifach: Ist die Option ggplot2 die beste Lösung für die Choroplethenzuordnung in R, und wenn ja, wie kann ich das Problem der fehlerhaften weißen Linien lösen?

Replizierbarer Code, um herauszufinden, was ich getan habe, ist hier .

Bearbeiten - Seitdem wird die Ausgabeoption von choropleth () attraktiver:

Neue Handlung

Die Hässlichkeit dieser Option kann verringert werden, indem mit höherer Auflösung exportiert und die Legende entfernt wird ( andere R-Legenden sind verfügbar). Es ist immer noch nicht gelungen, die Strichstärke zu ändern, aber es wird besser! Rote Linien stehen für Ströme in Zonen, in denen mehr als 5000 Personen beschäftigt sind.


1
Die erste R-Karte würde viel schöner aussehen, wenn Sie die Größe der Polygonkonturen reduzieren (und sie möglicherweise wie im ersten QGIS-Beispiel vollständig transparent machen würden).
Andy W

3
Einverstanden, aber ich weiß nicht, wie das geht - der verwendete Code war "choropleth (oas, v = oas $ to, shades)". Es wurde nach Dokumentation zum Entfernen von Zeilen gesucht, aber nichts gefunden: cran.r-project.org/web/packages/GISTools/GISTools.pdf
RobinLovelace

1
@RobinLovelace Wenn Sie Ihren R-Code eingeben, können wir Ihnen sicherlich bei diesen Problemen helfen, aber ohne ein reproduzierbares Beispiel ist es nicht einfach, die Probleme zu lokalisieren. Ich weiß die Mühe zu schätzen, die Sie unternommen haben, um die (nützlichen) Screenshots zu erstellen, aber die Bilder sind nur das i-Tüpfelchen auf dem Quellcode.
SlowLearner

Bitte beachten Sie den reproduzierbaren Code in diesem ZIP-Ordner, wie oben angegeben: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace

@RobinLovelace Vielen Dank, interessant, heruntergeladen haben
SlowLearner

Antworten:


7

Es gibt einige großartige Ressourcen zu genau diesem sehr interessanten Thema, darunter:

Aus Revolutionen:

Choropleth Map R Herausforderung

Choropleth Challenge Ergebnisse

Aus Stack Overflow.se:

Entwickeln von geografischen thematischen Karten mit R

Es gibt ausgezeichnete Beispiele für Choroplethenkarten und den zugehörigen R-Code, einschließlich meiner Lieblingskarte (dh der beigefügten Karte) mit ggplot2. Es sollte relativ einfach sein, einen eigenen Datensatz in eines der Skriptbeispiele einzufügen.

R Code für diese Karte verfügbar unter Dies ist das Grüne Zimmer


Vielen Dank, dass Sie diese hervorragenden Ressourcen gekennzeichnet und die Arbeitslosenkarte der USA gezeigt haben. Vermisse eine Legende! Irgendwelche Vorschläge, wie man diese Ressourcen in Karten von Sheffield übersetzt? Code-Schnipsel, um meinen fehlgeschlagenen Versuch der Choroplethen-Zuordnung mit ggplot2 und den Daten, die ich von Sheffield zur Verfügung gestellt habe, auszusortieren, werden sehr geschätzt!
Robin Lovelace

@RobinLoveLace Ich bin froh, dass die Links für Sie nützlich waren. Sie sollten kein Problem damit haben, Ihr eigenes Dataset in die vielen Beispielskripte einzufügen, obwohl Sie möglicherweise die Ärmel hochkrempeln und die spezifischen Pakete ein wenig ausprobieren müssen. Leider habe ich jetzt nicht die Zeit, es für dich zu tun - sorry!
Aaron

1
Ich werde ein Stück spielen und hoffentlich weitere Bearbeitungen und replizierbaren Code hinzufügen, wenn sich die Karte verbessert.
Robin Lovelace
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.