Obwohl ich weiß, dass es in R eine Reihe von Funktionen zum Generieren von Wärmekarten gibt, besteht das Problem darin, dass ich keine optisch ansprechenden Karten erstellen kann. Die folgenden Bilder sind beispielsweise gute Beispiele für Heatmaps, die ich vermeiden möchte. Dem ersten fehlt es eindeutig an Details, während das andere (basierend auf denselben Punkten) zu detailliert ist, um nützlich zu sein. Beide Diagramme wurden mit der density () - Funktion im spatstat R-Paket erstellt.
Wie kann ich mehr "fließen" in meine Grundstücke? Was ich anstrebe, ist mehr das Aussehen, das die Ergebnisse der kommerziellen SpatialKey- Software ( Screenshot ) erzeugen können.
Irgendwelche Hinweise, Algorithmen, Pakete oder Codezeilen, die mich in diese Richtung führen könnten?
quelle
Antworten:
Es gibt zwei Faktoren, die sich auf die Glätte des Diagramms auswirken, die Bandbreite, die für die Schätzung der Kerneldichte verwendet wird, und die Unterbrechungen, denen Sie Farben im Diagramm zuweisen.
Meiner Erfahrung nach passe ich für eine explorative Analyse nur die Bandbreite an, bis ich ein nützliches Diagramm erhalte. Demonstration unten.
Das einfache Ändern des Standardfarbschemas hilft weder, noch ändert es die Auflösung der Pixel (wenn die Standardauflösung zu genau ist, sollten Sie die Auflösung reduzieren und die Pixel vergrößern). Obwohl Sie das Standardfarbschema aus ästhetischen Gründen möglicherweise ändern möchten, ist es sehr diskriminierend.
Was Sie tun können, um die Farbe zu verbessern, ist, die Skalierungsstufe in Logarithmen zu ändern (dies ist nur dann hilfreich, wenn Sie einen sehr inhomogenen Prozess haben). Ändern Sie die Farbpalette so, dass sie am unteren Ende stärker variiert (Abweichung in Bezug auf die Farbverlaufsspezifikation in R), oder passen Sie die Legende so an, dass sie diskrete Fächer anstelle von fortlaufenden Fächern enthält.
Beispiele für Bias in der Legende angepasst von hier , und ich habe eine andere Stelle auf der GIS - Website erklärt die diskreten Bins in einem ziemlich einfachen Beispiel Färbung hier . Dies hilft jedoch nicht, wenn das Muster zu Beginn über- oder untergeglättet ist.
Um die Farben im letzten Bild transparent zu machen (wobei das erste Farbfach Weiß ist), können Sie einfach den Farbverlauf generieren und dann die RGB-Spezifikation durch transparente Farben ersetzen. Beispiel unten mit den gleichen Daten wie oben.
quelle
Sie können von der Interp-Funktion aus dem Akima-Paket profitieren. Auf diese Weise können Sie Ihre Matrix bei Bedarf auf eine andere Auflösung interpolieren. Um so etwas wie Ihr verknüpftes Beispiel zu erstellen, müssten Sie in ein ziemlich feines Raster interpolieren (möglicherweise mit den Argumenten xo und yo, die eine Länge von ~ 1000 haben). Dadurch erhalten Sie eine neue Matrix, die Sie mit image () zeichnen können. Wenn Sie Transparenz wünschen, sind einige zusätzliche Arbeiten erforderlich. Mit einer Farbpalette ist dies nicht einfach. Daher müssen Sie möglicherweise jedes Raster als Polygon mit einer zugewiesenen Farbe zeichnen.
quelle
Vielleicht möchten Sie in ggplot2 suchen. Es scheint, dass das Paket, das Sie ausprobiert haben, keine großartigen Farbschemata oder "Flüsse" aufweist - werfen Sie einen Blick auf RColorBrewer. Es gibt einen Blog, in dem dieses Paket mit einem einfachen Beispiel implementiert wurde.
Ich bin mir nicht sicher, ob Sie versuchen, geografische Daten wie in Ihrem verknüpften Beispiel darzustellen , aber wenn Sie wissen, dass Google "Static Maps API V2 Developer Guide" anbietet und Sie Google und R mit einem Paket mit dem Namen RgoogleMaps kombinieren können .
Viel Glück bei Ihrer Recherche.
quelle
Haben Sie versucht, die Auflösung zu erhöhen
density
? Versuchen Sie es mit argumentdimyx=c(512, 512)
oder höher.quelle