2016-04-15 10 views
0

私は一連の実験を10段階または数ヶ月にわたって行いました。私は、3種類のタイプの細菌を増殖させ、成長(ACC)を数えています。ggplot2の有無にかかわらず、グループ分けされたboxplot r

私は、3種類の細菌(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)) 

ここで私はこれまで管理してきたものだが、ファセットにそれを得ることができない。第三グラフのような

enter image description here

何かがダウンし、この記事によさそうだ: ggplot: arranging boxplots of multiple y-variables for each group of a continuous x

編集

新しいコードは近いですが、 ACCを数値に変更します。ラベルをNG、SG、LG、MG、HGとしてy軸に戻すことはできますか?

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

enter image description here

決勝コード:

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")) 

、結果: enter image description here

+0

これはよくある質問です。既にggplot2に変数を探す場所を教えてください。 EAH $を使用しないでください! – Roland

+0

ありがとうございます。私は少なくとも10個の異なるggplotコードを試しました。ほとんどはstackoverflowからでしたが、私にとってはうまくいきませんでした。このエラーの意味を理解できません:layout_base(data、cols、drop = drop)のエラー: 少なくとも1つのレイヤーには、ファセットに使用するすべての変数が含まれている必要があります。また、なぜ私はEAH $を使ってはいけないのですか? – HCAI

答えて

1

ggplot2は、非標準の評価を使用しています。 dataパラメータに渡されたdata.frameの変数を探します。だからこれを簡単に行うことができます:

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

もちろん、Rは大文字と小文字を区別します。

+0

例をありがとう、本当にありがとう。私はそれを変更しました:ggplot(EAH、aes(x = TYPE、y = as.numeric(ACC))+ geom_boxplot(aes(fill = TYPE))+ facet_grid(.phase)私はACCを数値にしなければならなかったので、私はyaxis上のレベルを見ることができません(私の記事の私の編集を見てください)。どう思いますか? – HCAI

+0

ボックスプロットには数値のy軸が必要です(数値に基づく必要があります)。あなたが示していることは、ボックスプロットではありません。実際、私はあなたのプロットを理解することができません。 – Roland

+0

Rは成長レベル(成長なし、成長率など)を数値1,2,3などに変換してプロットします。このタイプのデータを表示するには、boxplotが間違った方法ですか?基本的に私はここに序数的なy軸を持っています... – HCAI

関連する問題