gpt4 book ai didi

r - 按组划分的 stat_summary 问题

转载 作者:行者123 更新时间:2023-12-05 06:30:32 24 4
gpt4 key购买 nike

我的最终目标是让 stat_summary 使用现有的组成员身份向绘图添加摘要行。我在绘制线条时遇到了问题,虽然我理解这个问题,但我无法弄清楚如何避免引起它。

一个例子:

library(ggplot2)
df <- data.frame(low=c(20,24,18,16),
mid=c(60,61,48,45),
high=c(80,75,81,83),
category=factor(seq(1:4)),
membership=factor(c(1,1,2,2)))

p <- ggplot(df, aes(x=category, y=mid)) +
geom_linerange(aes(ymin=low, ymax=high)) +
geom_point(shape=95, size=8)
p

这会生成四个类别中的每一个的图: enter image description here

第一步是使用stat_summary 添加一行显示yminyymax 的平均值,像这样:

p + 
stat_summary(data=df, aes(x="Aggregate", ymin=mean(low), y=mean(mid), ymax=mean(high)),
fun.data="mean", geom="linerange", inherit.aes=F) +
stat_summary(data=df, aes(x="Aggregate", y=mid), fun.y="mean", geom="point",
size=8, shape=95)

enter image description here

但是当我尝试使用 df 中的成员资格在组内生成均值时,我遇到了 linerange 的问题(尽管 point 图很好)。

p + 
stat_summary(data=df, aes(x="Aggregates", ymin=low, y=mid, ymax=high, group=membership),
fun.ymin="mean", fun.y="mean", fun.ymax="mean", geom="linerange",
inherit.aes=F, position_dodge(0.5))
stat_summary(data=df, aes(x="Aggregates", y=mid, group=membership),
fun.y="mean", geom="point", size=8, shape=95, position_dodge(0.5))

enter image description here

我从 ggplot_build(p) 知道 ymin=y=ymax,这就是为什么没有显示在情节上。但是,如果我使用 fun.data 而不是 fun.ymin/fun.ymax 我会收到关于没有要求 yminymax 美学。

$data[[3]]
x group ymin y ymax
1 5.125 2 46.5 46.5 46.5
2 4.875 1 60.5 60.5 60.5

如有任何帮助,我们将不胜感激!

最佳答案

您可能会发现,将数据框传递给 ggplot() 进行绘图之前,计算分组均值更容易。以下是一种可能的方法:

library(dplyr)

df %>%
rbind(df %>%
mutate(category = "Aggregate") %>%
group_by(category, membership) %>%
summarise_all(mean) %>% # calculate mean for low / mid / high by group
ungroup() %>%
select(colnames(df))) %>% #reorder columns to match the original df
ggplot(aes(x = category, y = mid, ymin = low, ymax = high,
colour = membership)) +
geom_linerange(position = position_dodge(width = 0.5)) +
geom_point(shape = 95, size = 8,
position = position_dodge(width = 0.5))

(我添加了 color = membership 以使组在视觉上更加不同。)

plot

关于r - 按组划分的 stat_summary 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52279112/

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