当我尝试使用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")
其中存在类似问题,例如在侧面以及顶部和底部:
如果有人能帮我解决这个问题,那就太好了,现在已经坚持了好几个小时了。
提前致谢!
答案 0 :(得分: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))