Ggplot2 で 2 つの列でグループ化する方法 (例あり)


ggplot2 でプロットを作成するときに、次の基本構文を使用して 2 つの列ごとにグループ化できます。

 ggplot(df, aes(x=var1, y=var2, color=var3, shape=var4,
       group=interaction(var3, var4))) + 
  geom_point() +
  geom_line()

この特定のコードは、データ フレーム内の列var3var4によってポイントがグループ化された線形プロットを生成します。

次の例は、この構文を実際に使用する方法を示しています。

例: ggplot2 の 2 つの列でグループ化する

R に、2 つの異なるプロモーションが実行されたときの 2 つの異なる店舗での数週間にわたる総売上高を示す次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (store=rep(c(' A ', ' B '), each= 8 ),
                 promo=rep(c(' Promo 1 ', ' Promo 2 '), each= 4 , times= 2 ),
                 week=rep(c(1:4), times= 4 ),
                 sales=c(1, 2, 6, 7, 2, 3, 5, 6, 3, 4, 7, 8, 3, 5, 8, 9))

#view data frame
df

   store promo week sales
1 A Promo 1 1 1
2 A Promo 1 2 2
3 A Promo 1 3 6
4 A Promo 1 4 7
5 A Promo 2 1 2
6 A Promo 2 2 3
7 A Promo 2 3 5
8 A Promo 2 4 6
9 B Promo 1 1 3
10 B Promo 1 2 4
11 B Promo 1 3 7
12 B Promo 1 4 8
13 B Promo 2 1 3
14 B Promo 2 2 5
15 B Promo 2 3 8
16 B Promo 2 4 9

次のコードを使用して、データ値がストア列プロモーション列ごとにグループ化された折れ線グラフを ggplot2 で作成できます。

 library (ggplot2)

#create line plot with values grouped by store and promo
ggplot(df, aes(x=week, y=sales, color=store, shape=promo,
               group=interaction(store, promo))) + 
  geom_point(size= 3 ) +
  geom_line()

ggplot 2 列ごとにグループ化する

結果は、各線が店舗プロモーションの組み合わせごとの売上高を表す折れ線グラフになります。

特に、4 つの線は次の組み合わせの売上高を表します。

  • 店舗Aのプロモーション1
  • 店舗Aのプロモーション2
  • 店舗Bのプロモーション1
  • 店舗Bのプロモーション1

プロットの横にある 2 つの凡例は、どの線がどの組み合わせを表すかを示します。

追加リソース

次のチュートリアルでは、ggplot2 で他の一般的なタスクを実行する方法を説明します。

ggplot2 で軸ラベルを回転する方法
ggplot2で軸ブレークを設定する方法
ggplot2 で軸の制限を設定する方法
ggplot2で凡例ラベルを変更する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です