带或不带 ggplot2 的分面分组箱线图 r

Faceted grouped boxplot r with or without ggplot2

我有一组超过 10 个阶段或几个月的实验。我正在培养 3 种不同类型的细菌并计算生长量 (ACC)。

我正在尝试获取三种细菌类型(A、E 和 H)在不同阶段生长的 facet_wrap 分组箱线图。我的数据:

head(EAH)
  ACC sample site bed phase X.M.SA TYPE
1  SG      A    1   0     1     NO    E
2  SG      A    2   0     1     NO    A
3  MG      A    3   0     1     NO    H
4  SG      A    4   0     1     NO    A
5  LG      A    1   0     2     NO    E
6  LG      A    2   0     2     NO    H

一些由于某种原因不起作用的代表性数据:

EAH<- data.frame(ACC=factor(sample(1:5,10,replace=T), label=c("NG","SG","LG","MG","GH")), 
                 Phase=factor(seq(1,10,1)),
                 TYPE=factor(sample(1:3,10,replace=T), label=c("A","E","S"),replace=T))

我正在尝试 ggplot2,但如果没有它也可以完成。

ggplot(EAH, aes(x=as.factor(EAH$phase), y=EAH$ACC, group=EAH$TYPE)) + 
  geom_boxplot(aes(fill=factor(EAH$TYPE)))+ facet_grid(. ~ as.factor(EAH$phase))

这是我到目前为止所管理的,但无法将其添加到方面:

这个 post 上的第三张图看起来不错: ggplot: arranging boxplots of multiple y-variables for each group of a continuous x

编辑

新代码已关闭,但我不得不将 ACC 更改为数字。我可以在 y 轴上将标签恢复为 NG、SG、LG、MG、HG 吗?

ggplot(EAH, aes(x=TYPE, y=as.numeric(ACC))) + 
  geom_boxplot(aes(fill=TYPE))+ facet_grid(. ~ phase)

最终代码:

library(RColorBrewer)
library(ggplot2)
ggplot(EAH, aes(x=TYPE, y=as.numeric(ACC))) + 
  geom_boxplot(aes(fill=TYPE))+ 
  facet_grid(. ~ phase) +
 labs(x = "Phase", y = "Growth",color="Type" )+
 scale_fill_brewer(palette="Blues")+
 theme_bw()+
 theme(strip.background=element_rect(fill="black"))+
 theme(strip.text=element_text(color="white", face="bold"))+
scale_y_discrete(breaks=c("1", "2", "3","4","5"),
                   labels=c("NG", "SG", "LG","MG","HG"))

结果:

ggplot2 使用非标准评估。它在传递给其 data 参数的 data.frame 中查找变量。所以你可以简单地这样做:

ggplot(EAH, aes(x=Phase, y=ACC)) + 
  geom_boxplot(aes(fill=TYPE))+ facet_grid(. ~ Phase)

当然,R 区分大小写。