我有三个不同长度的数据集,我想在同一图上绘制所有三个的密度函数。对于基本图形,这很简单:

n <- c(rnorm(10000), rnorm(10000))
a <- c(rnorm(10001), rnorm(10001, 0, 2))
p <- c(rnorm(10002), rnorm(10002, 2, .5))

plot(density(n))
lines(density(a))
lines(density(p))


这给了我这样的东西:

alt text http://www.cerebralmastication.com/wp-content/uploads/2009/10/density.png

但是我真的想对GGPLOT2做到这一点,因为我想添加其他仅GGPLOT2可用的功能。看来GGPLOT确实想获取我的经验数据并为我计算密度。因为我的数据集长度不同,这给了我很多帮助。那么如何在GGPLOT2中绘制这三种密度?

最佳答案

ggplot2中幸福的秘诀是将所有内容都设置为“长”(或我认为面向矩阵的人称之为“稀疏”)格式:

df <- rbind(data.frame(x="n",value=n),
            data.frame(x="a",value=a),
            data.frame(x="p",value=p))
qplot(value, colour=x, data=df, geom="density")


如果您不想要颜色:

qplot(value, group=x, data=df, geom="density")

08-19 23:03