gpt4 book ai didi

r - 通过累积分布的中值添加垂直线(ggplot2)

转载 作者:行者123 更新时间:2023-12-04 12:52:31 25 4
gpt4 key购买 nike

我正在使用 ggplot2 在单个图上绘制两个累积分布。使用 ?stat_ecdf 中的示例很简单。我的困难在于通过每个分布的中值添加垂直线。

使用单个发行版很容易做到这一点:

df <- data.frame(x = c(rnorm(100, 5, 10), rnorm(200, 0, 10)),
g = as.factor(c(rep(1, 100), rep(2, 200))))

ggplot(df, aes(x)) +
stat_ecdf() +
geom_vline(aes(xintercept = median(x)))

但我想不出一种简单的方法来为多个分布添加垂直线。我尝试了以下但没有成功:

ggplot(df, aes(x, colour = g)) +
stat_ecdf() +
geom_vline(aes(xintercept = median(x), colour = g))

我可以通过分阶段组装情节来获得所需的结果:

p <- ggplot(df[df$g == 1, ], aes(x)) +
stat_ecdf() +
geom_vline(aes(xintercept = median(x)))

p +
stat_ecdf(data = df[df$g == 2, ]) +
geom_vline(data = df[df$g == 2, ], aes(xintercept = median(x)))

但这似乎是一种不整洁的方式,而且还让我手动设置不同的线条颜色。

肯定有更好的方法吗?

最佳答案

试试这个:

ggplot(df, aes(x, colour = g)) +
stat_ecdf() +
geom_vline(aes(xintercept = median(x[g==1]), color=g[g==1])) +
geom_vline(aes(xintercept = median(x[g==2]), color=g[g==2]))

通过添加第二个 geom_vline 参数并指定每条线和颜色所指的组,您可以获得具有相应颜色的两条线。希望有帮助!

关于r - 通过累积分布的中值添加垂直线(ggplot2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com