问题描述
我有三组数据(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)