Raster zur ggmap-Grundkarte hinzufügen: Setze alpha (Transparenz) und fülle die Farbe zu inset_raster () in ggplot2

8

Ich möchte eine Karte mit einem Raster überlagern, das eine GoogleMaps-Basiskarte in ggplot2 überlagert. Daher habe ich get_map() und insert_raster() folgendermaßen verwendet:

%Vor%

Gibt es eine Möglichkeit, ein alpha zu setzen und die fill Farbe zu ändern?

Das Ergebnis sieht folgendermaßen aus:

    
loki 04.11.2015, 19:07
quelle

2 Antworten

8

Noch schneller ohne fortify :

Lesen Sie den ursprünglichen Post unten für weitere Informationen

Von diesen Blogeintrag habe ich gefunden dass wir räumliche Polygone direkt in ggplot::geom_polygon()

verwenden können %Vor%

Wie packe ich SPEED an, wenn man nur etwas visualisieren muss

Wie unten beschrieben, könnte ein solches Plotten mit einer großen Anzahl von Pixeln sehr langsam werden. Daher sollten Sie in Betracht ziehen, die Anzahl der Pixel zu reduzieren (was in den meisten Fällen die Informationsmenge in der Karte nicht wirklich verringert), bevor Sie sie in Polygone umwandeln. Daher kann raster::aggregate verwendet werden, um die Anzahl der Pixel auf einen vernünftigen Wert zu reduzieren.

Das Beispiel zeigt, wie die Anzahl der Pixel um eine Größenordnung von 4 (d. h. 2 * 2, horizontal * vertikal) verringert wird. Für weitere Informationen siehe ?raster::aggregate .

%Vor%

Originalbeitrag:

Nach einiger Zeit habe ich einen Weg gefunden, dieses Problem zu lösen. Konvertieren des Rasters in Polygone! Diese Idee wurde im Grunde nach Marc Needhams Blogpost .

Dennoch gibt es einen Nachteil : ggplot wird sehr langsam mit einer großen Anzahl von Polygonen, denen Sie zwangsläufig begegnen werden. Sie können die Dinge jedoch beschleunigen, indem Sie sie in ein png() (oder anderes) Gerät plotten.

Hier ist ein Codebeispiel:

%Vor%

Daraus ergibt sich folgendes:

    
loki 03.01.2016, 16:43
quelle
1

Ich habe gerade selbst in diese Sache hineingeschaut. Das Problem, dem ich begegnete, war der Versuch, eine ggmap-Ausgabe mit einem Raster zu überlagern, mit dem folgenden Fehler:

  

Fehler: geom_raster funktioniert nur mit kartesischen Koordinaten.

Um dieses Problem zu umgehen, verwenden Sie coord_cartesian () wie folgt:

%Vor%

Ich bin mir nicht sicher, woher dein Raster r kommt. Damit dies funktioniert, wandle einfach dein Raster r in einen Datenrahmen um und füge die Daten gemäß den Anweisungen von geom_raster () hinzu, stelle sicher, dass die Koordinaten in lat / long sind (d. h. wie die Karte).

Um Ihre Frage zu beantworten, können Sie mit geom_raster () alpha und fill bearbeiten.

Hoffe, das hilft.

Von dieser Arbeit wurde ursprünglich unter diesem Link gesprochen: Ссылка

    
pdbentley 06.12.2015 07:13
quelle

Tags und Links