是否有一种优雅的方法可以在应用于分组聚合的facet_grid(var1~var2)
绘图上添加小计面,其中聚合类似于sum
,mean
,{{1}等等。
"总计" facet应使用与其他facet相同的聚合。
下图给出了使用sd
的示例。总共有6个小计和1个总面。每个总面都提供每个碳水化合物值的平均mpg。
我的方法是笨重而冗长的。需要推广用于处理x和y分面/分组变量的一般数量的方法。我可以编写一个函数,根据聚合中的分组执行大量不规则的条件计算,但我真的在寻找方便和简单的东西。 Tidyverse解决方案首选。
mean
答案 0 :(得分:1)
您想在margins
功能中使用facet_grid()
选项。请参阅以下内容:
p2 <- ggplot(aggregate_data, aes(x=1, y=value))+
geom_point()+
facet_grid(dist~scale, margins = TRUE)
p2
答案 1 :(得分:0)
ggplot
可以直接从原始数据框执行此操作。但geom_text
仍然显示单个行值,而不是聚合。
p3<-ggplot(mtcars, aes(x=carb, y=mpg))+
stat_summary(fun.y="mean", geom="bar")+
facet_grid(cyl~gear, margins=T)+
geom_text(aes(label=round(..y..,1)),
col='red', size=3,hjust=-0.3, angle=90)+
ggtitle('Average MPG vs Num Carbs, by Num Cylinders & Num Gears')
print(p3)
它允许您按任何facet_grid组合对聚合进行分组。例如。
p4<-ggplot(mtcars, aes(x=carb, y=mpg))+
stat_summary(fun.y="mean", geom="bar")+
facet_grid(am+vs~gear, margins=T)+
geom_text(aes(label=round(..y..,1)),
col='red', size=3,hjust=-0.3, angle=90)+
ggtitle('Average MPG vs Num Carbs, by Num Gears and vs & am')
print(p4)