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))
我在尝试使用 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))