我有三个不同长度的数据集,我想在同一个图上绘制所有三个的密度函数。这是基本的图形直接:
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中绘制这三个密度?
答案 0 :(得分: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")