8

我有三个不同长度的数据集,我想在同一个图上绘制所有三个的密度函数。这对于基本图形来说是直截了当的:

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))

这给了我这样的东西:

替代文字 http://www.cerebralmastication.com/wp-content/uploads/2009/10/density.png

但我真的很想用 GGPLOT2 做到这一点,因为我想添加其他只有 GGPLOT2 才有的功能。看来 GGPLOT 真的很想拿我的经验数据并为我计算密度。因为我的数据集有不同的长度,所以它给了我很多好处。那么如何在 GGPLOT2 中绘制这三个密度呢?

4

1 回答 1

12

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")
于 2009-10-06T02:22:08.683 回答