1

我有一个分组箱线图,它为每个类别并排显示两个框(参见代码)。现在我有兴趣分别添加每个类别和框的平均值。我可以计算和可视化每个类别的平均值,但不以分组变量“年份”为条件。我试图单独计算每年的平均值并分别添加它们,但这不起作用。

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 Horizo​​ntal boxplot with bwplot

如果可能的话,有人可以使用 Lattice 图形来展示如何做到这一点吗?因为我硕士论文里所有的情节都是以此为基础的。

4

1 回答 1

0

如果您想考虑最后一个选项,您可以尝试使用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,aes(x = class, 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()

输出:

在此处输入图像描述

于 2020-10-17T15:23:20.307 回答