Scatterplot mit zu vielen Punkten
Ich versuche zu Plotten zwei Variablen, wobei N=700K. Das problem ist, dass es zu viel überlappen, so dass der plot wird meist ein fester block von schwarz. Gibt es eine Möglichkeit, dass ein Graustufen "cloud", wo die Dunkelheit der plot ist eine Funktion der Anzahl der Punkte in einer region? In anderen Worten, anstatt zu zeigen, einzelne Punkte, ich will die Handlung zu einer "Wolke", mit der die Anzahl der Punkte in einer region, die etwas dunkler als die region.
- Es klingt wie Sie ' re suchen für eine heatmap: flowingdata.com/2010/01/21/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Möglichkeit, damit umzugehen, wird mit alpha-blending, wodurch jeder Punkt leicht transparent. Also Bereiche erscheinen dunkler, die mehr Punkt geplottet auf Sie.
Dies ist einfach zu tun in
ggplot2
:Andere komfortable Möglichkeit, damit umzugehen ist (und wahrscheinlich besser geeignet für die Anzahl der Punkte, die Sie haben) ist hexagonales binning:
Und es gibt auch regelmäßig alte rechteckige binning (Bild weggelassen), die mehr wie Ihre traditionellen heatmap:
scale_fill_gradient()
und geben Sie Ihren eigenen low-und high-Farben, oder verwenden Siescale_fill_brewer()
und wählen Sie aus einer der sequentielle Paletten.geom_point()
und Handlung jedes einzelnen Punktes.stat_binhex()
sieht sehr Ansprechend und ein guter Weg, um zu beschreiben scatterplot-dichten.Können Sie auch einen Blick auf die
ggsubplot
Paket. Dieses Paket implementiert die Funktionen, die vorgestellt wurden von Hadley Wickham zurück im Jahr 2011 (http://blog.revolutionanalytics.com/2011/10/ggplot2-for-big-data.html).(In den folgenden, habe ich auch die "Punkte"-Ebene zur Veranschaulichung.)
Jedoch, diese features Felsen, wenn Sie eine Dritte variable zu kontrollieren.
Oder ein anderer Ansatz wäre, die Nutzung
smoothScatter()
:Alpha-blending ist einfach zu tun mit Basis-Grafik als gut.
Den ersten sechs Ziffern nach dem
#
sind die Farbe in RGB-hex und die letzten beiden sind die Deckkraft, wieder in hex, also 33 ~ 3/16th undurchsichtig.Können Sie auch verwenden, Dichte Höhenlinien (
ggplot2
):Oder kombinieren Dichte Konturen mit alpha-blending:
Einen überblick über mehrere gute Möglichkeiten in
ggplot2
:Option A: transparente Punkte
Option B: add-density-Konturen
Option C: hinzufügen gefüllt Dichte Konturen
Option D: density heatmap
Option E: hexbins
Option F: Teppiche
Kombinieren Sie in einer Abbildung:
Die Sie nützlich finden können die
hexbin
Paket. Aus der Hilfe-Seite vonhexbinplot
:Meine Lieblings-Methode, die für die Auswertung dieser Art von Daten ist beschrieben in diese Frage - ein scatter-density-plot. Die Idee ist, ein scatter-plot, sondern Farbe, in der die Punkte durch Ihre Dichte (grob gesagt, die Menge von überschneidung in diesem Bereich).
Gleichzeitig:
Hier ist das Ergebnis aus der top-Antwort auf die verlinkte Frage: