ggplot2でRベースプロットのより良いバージョンを作成しようとしています。私はggplot2のスタイルとカスタマイズが好きなので、共通の伝説だけでなく、私のデータは、いくつかの(しかし異なる)治療について同じ2つの観察グループを含む3つの別個のデータセットからなる。したがって、私は別の因子レベルで共通の凡例を持つ1つのグラフに3つの別々のプロットを生成したいと思います。私のポイントを説明するために、ここで最初の画像は、私がこれまでのRベースで生成されたものです: 複数のファセットを持つggplot2のクラスタ化されたバーグラフから空の要素を削除します
私は自分のデータと全く同じ構造を有しているダミーデータとggplot2プロットを生成しようとしました:
foo<-data.frame(c(letters,letters),c(rep('T1',26),rep('T2',26)),
runif(52),rep(c(rep('Ori1',12),rep('Ori2',8),rep('ori3',6)),2))
names(foo)<-c('Treatment','Type','Count','Origin')
a<-ggplot(foo,aes(x = factor(Treatment),y = Count))
a+ facet_grid(Origin~., scales="free_y", space="free") +
geom_bar(stat="identity",aes(fill=factor(foo$Type)),position="dodge")
+theme_bw()+theme(axis.text.x=element_text(angle=60,hjust=1))+coord_flip()
これは私に次の望ましくない結果をもたらします。
は、私は、スタックオーバーフローのトピックを認識していRemoving Unused Factors from a Facet in ggplot2とHow can I remove empty factors from ggplot2 facets?は、しかし、彼らは私がここに実現しようとするクラスタ化された棒グラフに対処していないと私は、しかし、今どのようにそれを解決するためにはありません、彼らは問題がある気がします。すべてのポインタは大歓迎です。
これが解決するまで(複雑です)、あなたは 'coord_flip'を省略し、代わりに' facet_wrap(〜Origin、scales = "free_x") 'を使用していると思います。 – joran
@joranコメントをいただきありがとうございますが、問題は解決しません。ここでは、 'coord_flip'は実際に問題に寄与しません。主な問題は、ファセット全体で 'position =" dodge "を保持する方法です。たぶん、私は実際にベースグラフを再現したくないということを明確にする必要があります。私は、プロットの本質をggplot2スタイルで使用できるようにしたいと考えています。 –
私が提案したことを実際に試したとは思わない。現時点では、 'coord_flip'は' scales = "free"でうまくいくとは限りません。これは既知の問題です。 – joran