Zeichnen Sie SpatialPolygons mit mehreren Unterpolygonen und Löchern mit ggplot2

8

Ich möchte SpatialPolygons aus der Bibliothek sp mit Lücken in ggplot2 zeichnen. Dank anderer Fragen zu stackoverflow weiß ich, dass dies erlaubt ist, wenn man im Uhrzeigersinn geschriebene Polygone behandelt:
Fotos und Videos Bei der Umwandlung von SpatialPolygons mit broom::tidy (ersetzt ggplot2::fortify ) werden Löcher-Polygone im Uhrzeigersinn gespeichert, um als Löcher gezeichnet zu werden.
In ggplot2 wird die Art, wie Polygone mit Löchern gezeichnet werden, einmal mit fill und einmal mit colour gezeichnet, andernfalls können Sie Linien sehen, die Polygone kreuzen. Wenn es sich um mehrere Subpolygone handelt, einige mit Löchern, ist dies komplizierter, da die Reihenfolge der Punkt-Features, wie sie in broom::tidy definiert sind, möglicherweise kein Füllen von Polygonen erlaubt (siehe Bild unten).
Hat jemand von Ihnen eine Lösung, um dieses Füllproblem loszuwerden?

Hier ist ein reproduzierbares Beispiel:

%Vor%

    
Sébastien Rochette 23.05.2017, 16:45
quelle

3 Antworten

9

Könnte eine gute Zeit sein, um zum sf -Paket zu gehen. Die Arbeit mit sf object ist in ggplot tatsächlich viel einfacher, dank der geom_sf Geometrie:

%Vor%

    
lbusett 29.05.2017, 19:19
quelle
1

Das Hinzufügen von Zeilen zeigt die Ursache des Problems. Das blaue "Polygon" wird gezeichnet, niedriger - & gt; obere - & gt; Loch.

Dieser Code (der nicht sehr elegant ist, sorry) lässt den Pfad zum Startpunkt des ersten Stücks zurückkehren, bevor er mit dem 3. fortfährt.

%Vor%

    
Jeremy Voisey 29.05.2017 19:33
quelle
1

Dieser Beitrag ist eine gute Frage und hat bereits gute Antworten erhalten. Ich glaube auch, dass Leute lernen sollten, mit sf objects zu arbeiten, da es die nächste Generation des räumlichen Datentyps in R ist. Aber ich möchte teilen, dass in diesem Fall geom_spatial aus dem ggspatial -Paket eine Option sein könnte um die SpatialPolygons zu plotten.

%Vor%

    
www 06.12.2017 17:40
quelle

Tags und Links