2017-06-14 4 views
-2

を動作させるfacet_gridを得ることができない私は、ボックスプロットとしての私のデータを表現しようとしていますし、次のように私のデータフレームが現在になります。私は次のスクリプトを実行し私は例が続き、私は私のデータを分割する

V1 V2  V3   V4  V5 
1 1 12.18 FEMALE A_ambiguus  Host 
2 2 11.81 FEMALE A_ambiguus  Host 
3 3 10.70 MALE A_ambiguus  Host 
4 4 11.07 MALE A_ambiguus  Host 
5 5 7.95 FEMALE A_ameliae Parasite 
6 6 7.42 FEMALE A_ameliae Parasite 

x軸として種(V4)、y軸として全長(V2)、V2で順序付けられ、V5で色付けされた図形を生成する。

box <- ggplot(TL_sub, aes(x = V4, y = V2, group = V4)) + 
    scale_y_continuous(name = "TL (mm)") + 
    theme(axis.text.x=element_text(angle = 45, hjust = 1)) + 
    geom_boxplot(aes(fill=Condition)) + 
    aes(x=reorder(V4,V2),y=V2,label=TL) 

box 

Sorted boxplot of all data

問題は、私はその後、

box + facet_grid(. ~ V5) 

を実行したときの目標は、セックス(V3)で区切られた2つのプロットを作成することですが、それは動作しないということです。次のエラーが表示されます。

Error in combine_vars(data, params$plot_env, cols, drop = params$drop) : 
    At least one layer must contain all variables used for facetting 

私は必要に応じて完全なデータセットを提供できます。

助けがあれば助かります。 ありがとう、 Steven M.

+0

から別の例であるデータセット全体へのリンクです: ます。https://www.dropbox。 com/sh/yrw1rhr88q5a07t/AABpGsQp7efVoCfLeyFnxoE6a?dl = 0 –

+3

サンプルコードとサンプルプロットが一致しません。あなたのサンプルデータにはConditionという名前のカラムはなく、セックスがV3のときは 'facet_grid'でV5を使いました。私はそれがエラーを引き起こしているとは思わないが、質問に矛盾するデータが含まれている場合は答えにくい。 – neilfws

+0

あなたの質問を慎重にチェックして、すべての要素を試してください。 – Al14

答えて

3

これは、完全なデータセットを使用して私にとってうまくいきます。ここで

TL_subset %>% 
    ggplot(aes(reorder(Species, TL), TL)) + 
    geom_boxplot(aes(fill = Condition)) + 
    labs(x = "Species", y = "TL (mm)") + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
    facet_grid(. ~ Sex) 

0

ここにあなたのサンプルデータ

dataset<-data.frame(V2=c(12.18,11.81,10.70,11.07,7.95,7.42), 
        V3=c("FEMALE","FEMALE","Male","Male","FEMALE","FEMALE"), 
        V4=c("A_ambiguus","A_ambiguus","A_ambiguus","A_ambiguus","A_ameliae","A_ameliae"), 
        V5=c("Host","Host","Host",'Host',"Parasite","Parasite"))     


library(ggplot2) 

ggplot(data=dataset,aes(x=V4,y=V2)) + geom_boxplot(aes(fill=V5))+facet_grid(.~V3) +xlab("Species") + 
    ylab("TL (mm)") + scale_fill_discrete(name="Condition") 

enter image description here

関連する問題