6

x 軸が患者ごとで、各患者が複数のサンプルを持つようにバープロットを生成しようとしています。たとえば (データがどのように見えるかのテンプレートとして mtcars データを使用):

library("ggplot2")
ggplot(mtcars, aes(x = factor(cyl), group = factor(gear))) +
   geom_bar(position = position_dodge(width = 0.8), binwidth = 25) +
   xlab("Patient") +
   ylab("Number of Mutations per Patient Sample")

これにより、次のようなものが生成されます。

ここに画像の説明を入力

各棒グラフは各患者のサンプルを表しています。

バープロットを塗りつぶすために色を使用して、各患者サンプルに関する追加情報を追加したいと考えています (たとえば、各患者サンプルのさまざまなタイプの変異)。次のようにfillパラメーターを指定できると思っていました:

ggplot(mtcars, aes(x = factor(cyl), group = factor(gear), fill = factor(vs))) +
   geom_bar(position = position_dodge(width = 0.8), binwidth = 25) +
   xlab("Patient") +
   ylab("Number of Mutations per Patient Sample")

しかし、これは各患者サンプル棒グラフの「積み上げ棒グラフ」を生成しません。これは position_dodge() が設定されているためだと思います。とにかくこれを回避する方法はありますか?基本的に、私が欲しいのは:

ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs))) +
   geom_bar() +
   xlab("Patient") +
   ylab("Number of Mutations per Patient Sample")

ここに画像の説明を入力

しかし、これらの色は、私がリストした最初のプロットで利用できます. これはggplot2で可能ですか?

4

4 に答える 4

9

ファセットは、探しているように見えるものに最も近いと思います。

ggplot(mtcars, aes(x = factor(gear), fill = factor(vs))) +
    geom_bar(position = position_dodge(width = 0.8), binwidth = 25) +
    xlab("Patient") +
    ylab("Number of Mutations per Patient Sample") +
    facet_wrap(~cyl)

プロットの結果

ggplot2 の問題トラッカーに関連するものは見つかりませんでした。

于 2015-07-28T21:41:09.810 に答える
1

あなたの質問を正しく理解できれば、 aes() を geom_bar レイヤーに渡したいと思います。これにより、塗りつぶしの美学を渡すことができます。次に、データをどのように表示するかに応じて、バーを「覆い焼き」または「塗りつぶし」として配置できます。

簡単な例を次に示します。

   ggplot(mtcars, aes(x = factor(cyl), fill = factor(vs))) +
      geom_bar(aes(fill = factor(vs)), position = "dodge", binwidth = 25) +
      xlab("Patient") +
      ylab("Number of Mutations per Patient Sample")

結果のプロット: http://imgur.com/ApUJ4p2 (申し訳ありませんが、S/O ではまだ画像を投稿できません)

それが役立つことを願っています!

于 2015-07-28T21:40:19.613 に答える
0

この投稿での私の回答は、患者ごとに複数の縦棒が積み上げられたグラフを作成するのに役立つと思います...

ggplotのレイヤード軸?

于 2015-07-29T07:06:01.000 に答える