带或不带ggplot2的分面分组箱线图r
我在10个阶段或几个月内做了一系列实验。我正在培养3种不同类型的细菌,并计算生长(ACC) 我试图得到三种细菌类型(a、E和H)在不同阶段生长的分组箱线图。我的数据:带或不带ggplot2的分面分组箱线图r,r,ggplot2,facet-wrap,R,Ggplot2,Facet Wrap,我在10个阶段或几个月内做了一系列实验。我正在培养3种不同类型的细菌,并计算生长(ACC) 我试图得到三种细菌类型(a、E和H)在不同阶段生长的分组箱线图。我的数据: 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
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))
以下是我到目前为止所做的工作,但无法实现:
这篇文章下面的第三张图表看起来不错:
编辑
新代码很接近,但我不得不将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是区分大小写的。这是常见问题解答。您已经告诉ggplot2在哪里查找变量。不要使用EAH$!谢谢你看这个。我尝试了至少10种不同的ggplot代码,大部分来自stackoverflow,但没有一种适合我。我无法理解这个错误的含义:布局库中的错误(data,cols,drop=drop):至少一个层必须包含用于镶嵌面的所有变量。还有为什么我不应该使用EAH$!?非常感谢你的例子,我真的很感激。我把它改为:ggplot(EAH,aes(x=TYPE,y=as.numeric(ACC))+geom_盒形图(aes(fill=TYPE))+facet_网格(.~phase),它给出了正确的分割,但由于我必须使ACC为数值,我看不到yaxis上的级别(见我在帖子中的编辑)。你认为呢?箱线图必须有数字y轴(并且必须基于数字值)。你展示的不是箱线图。事实上,我无法理解您的绘图。R将增长水平(无增长、少量增长等)转换为数值1、2、3等来绘图。箱线图显示此类数据的方式是否错误?基本上我这里有一个有序的分类y轴…箱线图是连续数据的。你没有这个,因此箱线图对你来说是错误的工具。
ggplot(EAH, aes(x=Phase, y=ACC)) +
geom_boxplot(aes(fill=TYPE))+ facet_grid(. ~ Phase)