我有五列数字。我想在 R 中用不同颜色绘制一张图中五列的频率分布。有人可以通过一个例子帮助我如何做到这一点。我对 R 很陌生。
问问题
12205 次
2 回答
7
使用来自@eddi 的样本数据,您还可以考虑“lattice”包:
set.seed(1)
d <- data.frame(a = rnorm(100), b = rnorm(100, 1), c = rnorm(100, 2),
d = rnorm(100, 3), e = rnorm(100, 4))
library(lattice)
densityplot(~ a + b + c + d + e, data = d)
这将产生:
如果你有很多列,你也可以通过首先创建一个来创建你的图formula
:
myFormula <- as.formula(paste("~ ", paste(names(d), collapse = "+")))
densityplot(myFormula, data = d)
您还应该探索可用于 的各种选项densityplot
,例如(如果您不想要密度图底部的点plot.points
,可以将其设置为)并添加图例。FALSE
auto.key
另一个明显的选择是使用“ggplot2”,但为此,您需要先将数据转换为“长”格式:
d2 <- stack(d)
library(ggplot2)
qplot(values, colour=factor(ind), data=d2, geom="density")
结果:
于 2013-04-22T17:23:43.767 回答
0
这是一个基本的 R 解决方案:
d = data.frame(a = rnorm(100), b = rnorm(100, 1), c = rnorm(100, 2), d = rnorm(100, 3), e = rnorm(100, 4))
plot(density(d$a), xlim = c(-4, 8))
lines(density(d$b), col = "red")
lines(density(d$c), col = "green")
lines(density(d$d), col = "blue")
lines(density(d$e), col = "yellow")
于 2013-04-22T14:57:05.783 回答