Es gibt questions da draußen über die Tatsache, dass ggplot2
nicht Polygonformen, die Löcher haben plotten können.Plot ggplot Polygone mit Löchern mit geom_polygon
Dies ist, weil, wenn die Reihenfolge der Punkte nicht OK ist, das Ende Diagramm schlecht aussieht, in der Regel mit Clipping/Trimmen Linien innerhalb der Donut-Form.
Ich habe viel darüber gelesen, wie wichtig die Reihenfolge ist, aber ich kann nicht vortreten. Ich habe eine SpatialPolygonsDataFrame
mit 26 Funktionen (kommt von) und ich möchte es mit ggplot
plotten.
Hier ist, was passiert -
r3.pol <- rasterToPolygons(r3, dissolve=T)
r3.df <- fortify(r3.pol)
names(r3.df) <- c('x','y','order','hole','piece','ID','group')
p <- ggplot(r3.df)
p <- p + geom_polygon(mapping=aes(x=x,y=y,group=ID), fill='red')
p <- p + coord_equal()
Ich sehe diese Ausgabe:
Während es wie so mit plot(r3.pol)
sein sollte:
Wie kann Ich bin ake diese Arbeit? Ich habe stundenlang versucht, aber ich bin nicht in der Lage, r3.df
neu zu ordnen. Kann auch die Information in r3.df$hole
hilfreich sein? Es wird von der Funktion fortify
für Punkte zurückgegeben, die Löcher sind (glaube ich).
Side Frage: Wie kann ich Ihnen meine r3.pol SpatialPolygonsDataFrame geben, so dass Sie es selbst versuchen können? Ich erinnere mich an lange, reproduzierbare "Dumps" von Objekten hier, aber ich weiß nicht, wie ich das machen soll.
I save
d die Polygone Datenrahmen here. Ich konnte es nicht mit dput
speichern, sorry. Sie können es mit load
abrufen.
Sie müssen nicht den gesamten Datenrahmen angeben. Nur eine kleinere Probe mit ein paar separaten Polygonen. Fügen Sie in Ihre Frage die Ausgabe von 'dput (dataSample)' ein. – eipi10
@ eipi10 Das war es! Aber ich habe Probleme damit. Es scheint nicht auf einem SpatialPolygonsDataFrame zu funktionieren. Und wenn ich es auf r3.df verwende, sogar mit Subsampling, ist es immer noch ein riesiger Dump. Ich denke, ich werde dort einen Log-Anbieter verwenden. – natario
Ich würde sagen, ditch ggplot2 für Karten und Paket verwenden: tmap - behandelt Löcher, nicht mehr alles zu "verstärken". – Spacedman