2016-04-06 14 views
0

Ich versuche, eine Dichte Heatmap in R zu erstellen, mit ggplot2 und stat_density2d. Während es mir ein Dichtediagramm über 2 Achsen gibt, erzeugt es seltsame dreieckige Leerzeichen neben der erwarteten Heatmap.ggplot2 stat_density2d erzeugt seltsame Dreiecke

Ich folge diesen example, daher der folgende Code erzeugt die Heatmap selbst (ohne Streuung):

dfFilter <- data.frame(matrix(runif(2000, 0.0, 1.0),nrow=1000)) 

# HEATMAP  
ggplot(dfFilter,aes(x= X1,y= X2))+ 
stat_density2d(aes(alpha=..level..), geom="polygon") 

Mein Ergebnis sieht ganz wie erwartet, hat aber einige unerwartete Traingles. Es sieht so aus, als ob R Punkte verbindet, springt aber plötzlich auf die andere Seite der Handlung, um fortzufahren.

enter image description here

Wer der Grund weiß, was sein könnte und wie es zu lösen? Danke vielmals!

+2

Ich wäre daran interessiert, dies zu untersuchen, aber ich kann wirklich nichts tun, ohne ein vollständiger reproduzierbares Beispiel. – joran

+0

Hallo @joran, ich habe die Frage oben mit einem reproduzierbaren Beispiel aktualisiert. Vielen Dank für Ihre schnelle Antwort! – Dendrobates

+0

Bitte beachten Sie die Änderungen, die ich vorgenommen habe, um ein reproduzierbares Beispiel für das nächste Mal zu erstellen, wenn Sie eine Frage stellen. – joran

Antwort

1

Ich glaube, das ist einfach ein Ergebnis der Polygone, die abgeschnitten werden, um in den ursprünglichen Datenbereich zu passen. Versuchen:

ggplot(dfFilter,aes(x=X1,y=X2))+ 
    stat_density2d(aes(alpha=..level..),geom = "polygon") + 
    lims(x = c(-0.2,1.2),y = c(-0.2,1.2)) 

Insbesondere dann, wenn Sie versuchen, dass geom = "polygon" ohne mit und ohne die Grenzen zu setzen, werden Sie den Unterschied in dem Clipping der Konturlinien sehen. Wenn ggplot versucht, die Polygone zu zeichnen, wenn die Konturlinien abgeschnitten wurden, weiß es nicht, wie man den Kreis sozusagen vervollständigt, also springt er herum.

+0

Danke für deine Hilfe, das war wirklich der Trick! – Dendrobates

Verwandte Themen