ggplot2中只显示了两种密度中的一种

时间:2013-07-11 22:42:43

标签: r plot ggplot2 statistics

所以我有两组数据(长度不同)我试图分组并显示密度图:

dat <- data.frame(dens = c(nEXP,nCNT),lines = rep(c("Exp","Cont")))
ggplot(dat, aes(x = dens, group=lines, fill = lines)) + geom_density(alpha = .5)

当我运行代码时,会发出有关不同长度的错误,即 “参数意味着不同的行数:x,y”

然后我将代码扩充到:

dat <- data.frame(dens = c(nEXP,nCNT),lines = rep(c("Exp","Cont"),X))

其中X是较长参数的长度,因此“lines”的长度将与dens的长度相匹配。

现在的问题是,当我去绘制数据时,我只得到一个密度图....我知道应该有两个,因为用绘图/线绘制密度,显然是两个不相等的重叠分布,所以我假设错误是分组...

希望这是有道理的。

2 个答案:

答案 0 :(得分:1)

所以我不确定为什么,但基本上我只需要手动执行rep()函数:

A<-data.frame(ExpN, key = "exp")
B<-data.frame(ConN,key = "con")
colnames(A) <- c("a","key")
colnames(B) <- c("a","key")
dat <- rbind(A,B)
ggplot(dat, aes(x = dens, fill = key)) + geom_density(alpha = .5) 

答案 1 :(得分:0)

您需要告诉rep重复每个元素多少次才能让它排成一行

dat <- data.frame(dens = c(nEXP,nCNT),
                  lines = rep(c("Exp","Cont"), c(length(nEXP),length(nCNT)))

这应该会为您提供dat,您可以使用ggplot来电。