R中的频率分布

时间:2013-04-22 14:50:13

标签: r plot frequency-distribution

我有五列数字。我想用R中的不同颜色绘制一个图形中五列的频率分布。有人可以通过一个例子来帮助我如何做到这一点。我是R的新手。

2 个答案:

答案 0 :(得分:6)

使用来自@eddi的样本数据,您还可以考虑“格子”包:

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)

这将产生:

enter image description here

如果您有多列,也可以先创建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")

结果:

enter image description here

答案 1 :(得分: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")