-4

我有五列数字。我想在 R 中用不同颜色绘制一张图中五列的频率分布。有人可以通过一个例子帮助我如何做到这一点。我对 R 很陌生。

4

2 回答 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,可以将其设置为)并添加图例。FALSEauto.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 回答