带或不带 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 区分大小写。
我有一组超过 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 区分大小写。