2016-04-06 104 views
0

我試圖在R中使用ggplot2stat_density2d構造密度熱圖。雖然它給了我一個2軸密度圖,但它在預期的熱圖旁邊會產生奇怪的三角形空間。ggplot2 stat_density2d產生奇怪的三角形

我下面這個example,因此下面的代碼產生的熱圖本身(不散射):

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") 

我的結果看起來相當符合市場預期,但有一些意想不到的traingles。它看起來像R連接點,但突然跳到劇情的另一邊繼續。

enter image description here

任何人誰知道的原因可能是什麼,以及如何解決呢?非常感謝!

+2

我有興趣研究這一點,但是如果沒有一個更完整的可重複的例子,我無法做任何事情。 – joran

+0

嗨@joran,我更新了上面的問題,一個可重複的例子。非常感謝您的快速回復! – Dendrobates

+0

請注意我在下次提問時爲實際創建可重複的示例所做的編輯。 – joran

回答

1

我相信這只是多邊形被裁剪​​以適合原始數據範圍的結果。嘗試:

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)) 

特別是,如果你嘗試,如果沒有geom = "polygon"有和沒有設置限制,你會看到在輪廓線的剪裁的差異。當ggplot試圖繪製多邊形時,如果輪廓線被剪切掉,它不知道如何完成圓圈,所以它可以跳躍。

+0

Thx爲您提供幫助,那確實是個訣竅! – Dendrobates