ggplot2 stat_density2d产生奇怪的三角形

时间:2016-04-06 16:08:02

标签: r ggplot2 heatmap

我尝试使用ggplot2stat_density2d在R中构建密度热图。虽然它确实给我一个2轴以上的密度图,但它会在预期的热图旁边产生奇怪的三角形空间。

我跟随此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")

我的结果看起来很像预期,但有一些意想不到的琐事。看起来R是连接点,但突然跳到情节的另一边继续。

enter image description here

任何人知道原因是什么,以及如何解决?非常感谢!

1 个答案:

答案 0 :(得分: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尝试绘制多边形时,如果轮廓线被剪裁,它就不知道如何完成圆圈,可以这么说它会跳转。