-2

データを箱ひげ図として表現しようとしていますが、データ フレームは現在次のようになっています。

  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

次のスクリプトを実行して、種 (V4) を x 軸、全長 (V2) を y 軸、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

すべてのデータの並べ替えられた箱ひげ図

問題は、次に実行するときです

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

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

どんな助けでも素晴らしいでしょう!ありがとう、スティーブン M.

4

2 に答える 2

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

ここに画像の説明を入力

于 2017-06-14T23:49:39.977 に答える