叠加密度图

Overlaying Density Plots

我有三组数据(df$A、df$B、df$C),我想为它们绘制密度图(每个值的频率)。我知道我可以使用 plot(density(df$A)).

来实现它

不过,我想把三个密度图放在一个图中,让df$B和df$C的密度图作为df$A密度图的置信区间带。也就是说,最好df$B和df$C的密度图可以是浅色,甚至是虚线。

这可能与您想做的很接近。首先我们需要一些数据。既然你提到了置信限度,我将把第二和第三密度的均值放在第一密度均值两侧的 2 个标准差处,第一密度的标准差的一半:

set.seed(42)
A <- rnorm(100, 50, 10)
B <- rnorm(100, 30, 5)
C <- rnorm(100, 70, 5)
df <- data.frame(A, B, C)

接下来是密度:

Ad <- density(df$A)
Bd <- density(df$B)
Cd <- density(df$C)

现在我们需要知道绘图的 x 和 y 限制:

xr <- range(c(Ad$x, Bd$x, Cd$x))
yr <- range(c(Ad$y, Bd$y, Cd$y))

最后剧情:

plot(Ad, xlim=xr, ylim=yr)
lines(Bd, lty=3)
lines(Cd, lty=3)