Befestigung maps library-Daten für Pacific centred (0°-360° Länge) display

Ich bin zeichnen einige Punkte auf einer Karte der Welt, die mit dem R maps - Paket, so etwas wie:

Befestigung maps library-Daten für Pacific centred (0°-360° Länge) display

Den Befehl zum zeichnen der base-map ist:

map("world", fill=TRUE, col="white", bg="gray", ylim=c(-60, 90), mar=c(0,0,0,0))

Aber ich brauche, um anzuzeigen, Pazifik zentrierte Karte. Ich benutze map("world2", etc zu nutzen, die Pazifik-zentrierte Grundkarte aus der Karten-Paket, und konvertieren Sie die Koordinaten der Datenpunkte in mein dataframe (df) mit:

df$longitude[df$longitude < 0] = df$longitude[df$longitude < 0] + 360

Dies funktioniert, wenn ich nicht verwenden, die fill option, aber mit fill die Polygone, die quer 0° Probleme verursachen.

Befestigung maps library-Daten für Pacific centred (0°-360° Länge) display

Ich glaube, ich muss für die Transformation der polygon-Daten aus der maps Bibliothek irgendwie zu lösen, aber ich habe keine Ahnung, wie man das an.

Meine ideale Lösung wäre, ziehen, Karten mit der linken Grenze bei -20° und einer rechten Grenze bei -30° (d.h. 330°). Im folgenden wird die richtigen Punkte und Küsten auf der Karte, aber die überfahrt-null problem ist das gleiche

df$longitude[df$longitude < -20] = df$longitude[d$longitude < -20] + 360
map("world", fill=TRUE, col="white", bg="gray", mar=c(0,0,0,0),
  ylim=c(-60, 90), xlim=c(-20, 330))
map("world2", add=TRUE, col="white", bg="gray", fill=TRUE, xlim=c(180, 330))

Jegliche Hilfe würde sehr geschätzt werden.

  • Sein, weil die Grenzen nicht bilden geschlossene Formen, weil, wo der Schnitt ist.
  • Hier ist ein workaround: Fügen Sie eine große, beliebige Anzahl von df$longitude, sagen zum Beispiel 360. Sollte dies funktionieren, so lange, wie Sie nicht brauchen, um zu zeigen, die Längengrade auf einer Skala. PS. Ich habe dies getan, erfolgreich mit ggplot() Grafik.
  • ist ein geschlossenes polygon nur ein offenes polygon mit dem ersten Punkt wiederholt am Ende? Weißt du, wie ich manipulieren kann dieser in den Karten-Paket?
  • df ist nur ein dataframe mit den Koordinaten meiner farbigen Punkte auf der Karte Polygone sind Teil der Karten-Bibliothek.
  • Ja, das ist richtig. Sie können die map_data Funktion in ggplot2 um die Daten in data.frame - format, und überprüfen Sie dann jede Gruppe, um zu sehen, wenn es geschlossen ist, und fügen Sie einen neuen Datenpunkt, wenn nicht.
InformationsquelleAutor Michael Dunn | 2011-03-18
Schreibe einen Kommentar