我有三个不同长度的数据集,我想在同一个图上绘制所有三个的密度函数.这是基本图形直接:
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))
Run Code Online (Sandbox Code Playgroud)
这给了我这样的东西:
alt text http://www.cerebralmastication.com/wp-content/uploads/2009/10/density.png
但我真的想用GGPLOT2做这件事,因为我想添加其他只有GGPLOT2可用的功能.看来GGPLOT真的想拿出我的经验数据并为我计算密度.它给了我一堆唇,因为我的数据集有不同的长度.那么如何在GGPLOT2中绘制这三个密度?
Edu*_*oni 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")
Run Code Online (Sandbox Code Playgroud)
如果你不想要颜色:
qplot(value, group=x, data=df, geom="density")
Run Code Online (Sandbox Code Playgroud)