gpt4 book ai didi

r - 在 ggplot boxplot 中的填充组内显示单独的均值

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

我有一个使用 3 个类别的数据的分组箱线图。一个类别设置为箱线图的 x 轴,另一个设置为填充,最后一个设置为分面类别。我想显示每个填充组的平均值,但使用 stat_summary只给我 x 轴类别的平均值,而不分离填充的平均值:

facetted boxplots

这是当前的代码:

demoplot<-ggplot(demo,aes(x=variable,y=value))
demoplot+geom_boxplot(aes(fill=category2),position=position_dodge(.9))+
stat_summary(fun.y=mean, colour="black", geom="point", shape=18, size=4,) +
facet_wrap(~category1)

有没有什么方法可以显示每个类别 2 的平均值而无需手动计算和绘制点?调整位置闪避并没有真正的帮助,因为它只是一个计算平均值。会在 mean()内创造条件功能是否可取?

For anyone interested, here's the data:

高级感谢您对此的任何启发。

最佳答案

Ggplot 需要在此处获得有关分组的明确信息。您可以使用 aes(group=....) 来做到这一点。在所需图层中,或移动 fill=...到 ggplot 的主要调用。如果没有对图层进行显式分组,ggplot 将按 x 轴上的因子进行分组。这是一些带有假数据的示例代码:

library(ggplot2)
set.seed(123)

nobs <- 1000
dat <- data.frame(var1=sample(LETTERS[1:3],nobs, T),
var2=sample(LETTERS[1:2],nobs,T),
var3=sample(LETTERS[1:3],nobs,T),
y=rnorm(nobs))

p1 <- ggplot(dat, aes(x=var1, y=y)) +
geom_boxplot(aes(fill=var2), position=position_dodge(.9)) +
facet_wrap(~var3) +
stat_summary(fun.y=mean, geom="point", aes(group=var2), position=position_dodge(.9),
color="black", size=4)

enter image description here

关于r - 在 ggplot boxplot 中的填充组内显示单独的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36099799/

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