如何为分组的bwplot Lattice R添加均值

问题描述

我有一个分组的箱线图,它为每个类别并排显示两个箱(参见代码)。现在,我有兴趣分别为每个类别和框添加均值。我可以计算和可视化每个类别的平均值,但不以分组变量“ 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),...)
       }
) 

会产生以下情节:

Boxplot

该示例基于: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()

输出:

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...