问题描述
我有一个分组的箱线图,它为每个类别并排显示两个箱(参见代码)。现在,我有兴趣分别为每个类别和框添加均值。我可以计算和可视化每个类别的平均值,但不以分组变量“ year”为条件。我尝试分别计算每年的平均值并将其分别添加,但这没有用。
data(mpg,package = "ggplot2")
library(latticeExtra)
tmp <- tapply(mpg$hwy,mpg$class,FUN =mean)
bwplot(class~hwy,data = mpg,groups = year,box.width = 1/3,panel = panel.superpose,panel.groups = function(x,y,...,group.number) {
panel.bwplot(x,y + (group.number-1.5)/3,...)
panel.points(tmp,seq(tmp),...)
}
)
会产生以下情节:
该示例基于:Grouped horizontal boxplot with bwplot
如果可以的话,有人可以显示如何使用莱迪思的图形吗?因为我硕士论文中的所有情节都是基于它的。
解决方法
如果您要考虑使用最后一个选项,可以尝试使用ggplot2
。红点所属的代码在这里表示:
library(ggplot2)
library(dplyr)
#Data
data(mpg,package = "ggplot2")
#Compute summary for points
Avg <- mpg %>% group_by(class,year) %>%
summarise(Avg=mean(hwy))
#Plot
ggplot(data = mpg,aes(x = class,y = hwy,fill = factor(year))) +
geom_boxplot(alpha=.25) +
geom_point(data=Avg,y = Avg,color=factor(year)),position=position_dodge(width=0.9),show.legend = F)+
scale_color_manual(values = c('red','red'))+
coord_flip()+
labs(fill='Year')+
theme_bw()
输出: