2016-04-06 73 views
1

我試圖使用ggplot2的函數stat_density2d繪製二維密度圖時遇到了某種錯誤。當我只嘗試繪圖輪廓的曲線似乎很好地工作:R,ggplot - 密度圖顯示間隙

ggplot(mydata, aes(x=x_loc, y=y_loc)) + stat_density2d(aes(fill = ..level..)) 

然而,當我嘗試使用GEOM =「多邊形」

ggplot(mydata, aes(x=x_loc, y=y_loc))+stat_density2d(aes(fill = ..level..), geom = "polygon") 

我得到這個在層填寫:

Filled in

這看起來是給幾何誤差由於某種原因,但我不知道爲什麼。我試圖解決這個問題,但我似乎無法找到解決方案。我已經更新了我的R版本和我的所有軟件包,但沒有修復它。

由於重複的例子:

matrix = matrix(c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,1,2,3,1,2,3,1,2,3,1,2, 
3,1,2,3,1,2,3,18,12,20,24,22,35,18,12,19,20,5,16,11,7,10,5,1,3), nrow = 18) 

ggplot(as.data.frame(matrix), aes(x=V1, y=V2)) + 
stat_density2d(aes(fill = ..level..), geom = "polygon") 

它有類似的問題,例如在側面和頂部和底部:

Example output

如果有人可以幫助我這個那會很棒,現在已經堅持了幾個小時。

在此先感謝!

+0

請問[this](http://stackoverflow.com/q/36456535/324364)問題有幫助嗎? – joran

+0

您可重現的例子似乎沒有爲我重現 - 在您創建矩陣的步驟中出現問題! – user2728808

+0

@ user2728808道歉,我忘了添加nrow參數。現在應該修復。 –

回答

1

正如@ joran的評論中所提到的,this question似乎與此類似。默認的裁切值似乎會導致問題。以下作品適合我:

library(ggplot2) 

matrix = matrix(c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,1,2,3,1,2,3,1,2,3,1,2, 
3,1,2,3,1,2,3,18,12,20,24,22,35,18,12,19,20,5,16,11,7,10,5,1,3), nrow = 18) 

ggplot(as.data.frame(matrix), aes(x=V1, y=V2)) + 
stat_density2d(aes(fill = ..level..), geom = "polygon")+ 
lims(x = c(-1,8),y = c(-.25,4.25)) 
+0

謝謝!這確實解決了最初的問題。但是現在情節並沒有達到我想要的水平。無論如何有多邊形顯示正確,並有我希望他們的尺寸? –

+0

我想你可以手動調整lims值來得到想要的結果嗎?否則,不知道我害怕! – user2728808

+0

這裏的問題是,當我調整「lims」值到所需的數字時,多邊形不能正確顯示。感謝迄今爲止的幫助! –