R,ggplot - 密度图显示间隙

R, ggplot - Density plot shows gaps

我在尝试使用 ggplot2 的函数 stat_density2d 绘制二维密度图时遇到了某种错误。当我只尝试绘制图表的轮廓时,它似乎工作正常:

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

然而,当我尝试使用 geom = "polygon"

填充图层时
ggplot(mydata, aes(x=x_loc, y=y_loc))+stat_density2d(aes(fill = ..level..), geom = "polygon")

我明白了:

这看起来像是出于某种原因给出了几何错误,但我不确定为什么。我试图解决这个问题,但我似乎找不到解决方案。我已经更新了我的 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")

哪个有类似的问题,例如侧面和顶部和底部:

如果有人能帮我解决这个问题那就太好了,现在已经坚持了几个小时了。

提前致谢!

正如@joran 的评论中提到的, 似乎是同类。默认裁剪值似乎是导致问题的原因。以下对我有用:

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