ggplot - stat_density2d图的单位是多少?

时间:2014-07-12 20:37:49

标签: r ggplot2

stat_density2d对于密集散点图来说真是一个很好的显示,但是我无法找到密度实际含义的任何解释。我有一个密度范围从0到400的图。这个比例的单位是多少?

谢谢!

1 个答案:

答案 0 :(得分:5)

密度值取决于数据集中x和y的范围。

stat_density2d(...)使用kde2d(...)包中的MASS来计算基于二元正态分布的二维核密度估计值。缩放某点的密度,使得密度在所有x和y上的积分= 1.因此,如果数据是高度本地化的,或者x和y的范围很小,则可以得到大的密度数。

您可以在以下简单示例中看到:

library(ggplot2)
set.seed(1)
df1 <- data.frame(x=c(rnorm(50,0,5),rnorm(50,20,5)),
                  y=c(rnorm(50,0,5),rnorm(50,20,5)))
ggplot(df1, aes(x,y)) + geom_point()+ 
  stat_density2d(geom="path",aes(color=..level..))

set.seed(1)
df2 <- data.frame(x=c(rnorm(50,0,5),rnorm(50,20,5))/100,
                  y=c(rnorm(50,0,5),rnorm(50,20,5))/100)
ggplot(df2, aes(x,y)) + geom_point()+ 
  stat_density2d(geom="path",aes(color=..level..))

这两个数据框是相同的,只是在df2中,比例是df1(在每个方向上)的1/100,因此密度等级是图表中的10,000倍。 df2