簡體   English   中英

帶或不帶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))

到目前為止,這是我已經設法完成的工作,但無法理解:

在此處輸入圖片說明

類似於該帖子上的第3張圖,看起來不錯: ggplot:為連續x的每組安排多個y變量的箱形圖

編輯

新代碼即將結束,但我不得不將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是區分大小寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM