我有五列数字。我想用R中的不同颜色绘制一个图形中五列的频率分布。有人可以通过一个例子来帮助我如何做到这一点。我是R的新手。
答案 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)
这将产生:
如果您有多列,也可以先创建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")
结果:
答案 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")