微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

叠加密度图

如何解决叠加密度图

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

Density Plot

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。