2

私は ggplot が初めてで、ファセット積み上げ棒グラフを作成しようとしています。いくつかの時点でのさまざまな菌株の相対的存在量を調べています。これが私のデータの簡略化されたバージョンです:

ID  Tmpt    Rep B1  B2  B3
A1  1       1   .2  .4  .4
A2  1       2   .1  .4  .5
A3  2       1   .2  .45 .35
A4  2       2   .2  .3  .5
A5  3       1   .15 .5  .35
A6  3       2   .2  .5  .3

私の実際のデータには、より多くのタイムポイント (Tmpt)、担当者、細菌株 (変数 B1 ~ B3) がありますが、これは同じ形式です。ID はサンプルの任意のラベルにすぎず、B1 の値は皿の何パーセントが細菌 B1 で覆われているかを表します (B2 と B3 についても同様)。

各積み上げ棒グラフには時点ごとに 1 つのバーがあります (したがって、この例では、2 つのファセットがあり、それぞれに 3 つのバーがあります)。B1、B2、および B3 によるカバー率に基づいて各バーを色付けしたいと考えています (細菌の各株に 1 つずつ、3 つの色があるように)。以前に使用geom_bar()したことがあり、多面的な棒グラフを作成する方法を理解できると思いますが、色を付ける方法がわかりません. 私が ggplot で見たすべての例ではaes(fill = mycondition)、複数の列ではなく、データセット内の 1 つの列にすべてのカテゴリが含まれています。データを完全に再フォーマットせずにこれを行う方法はありますか?

4

1 に答える 1

2

No.ggplotは、プロット内の各項目が 1 つのデータ項目を正確に表している場合に最適に機能します。reshape2またはパッケージに慣れてくださいreshape。そうすれば、データの再フォーマットは問題になりません。

library(reshape2)
data.m <- melt(data, id.vars=c("ID", "Tmpt", "Rep"))

data.m必要な方法でデータをプロットするために直接使用できるはずです。

ggplot(data.m, aes(color=variable)) + facet_wrap(~Rep) + geom_bar(...)

次のわずかに関連する質問も参照してください:ファセット時に値を複数のプロットに繰り返す

于 2013-07-23T20:24:44.710 に答える