我有一个分组的框图,每个类别并排显示两个框(参见代码)。现在我感兴趣的是分别为每个类别和框添加均值。我可以计算和可视化每个类别的平均值,而不是以分组变量"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
如果可能的话,谁能展示一下如何使用网格图形来做这件事?因为我硕士论文中的所有情节都是基于它的。
发布于 2020-10-17 23:23:20
如果您想考虑最后一个选项,可以尝试使用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()输出:

https://stackoverflow.com/questions/64403849
复制相似问题