Ggplot2 の積み上げ棒グラフの棒を再配置する方法


次の基本構文を使用して、ggplot2 の積み上げ棒グラフの棒の位置を再配置できます。

 #specify order of bars (from top to bottom)
df$fill_var <- factor(df$fill_var, levels=c(' value1 ', ' value2 ', ' value3 ', ...))

#create stacked bar chart
ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + 
    geom_bar(position=' stack ', stat=' identity ')

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

例: ggplot2 の積み上げ棒グラフの棒を並べ替える

R に、さまざまなバスケットボール選手が獲得したポイントを示す次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 position=c('G', 'F', 'C', 'G', 'F', 'C', 'G', 'F', 'C'),
                 points=c(22, 12, 10, 30, 12, 17, 28, 23, 20))

#view data frame
df

  team position points
1 AG 22
2 AF12
3 AC 10
4 BG 30
5 BF 12
6 BC 17
7 GC 28
8 CF 23
9 CC 20

各チームのプレーヤーが獲得したポイントを視覚化する積み上げ棒グラフを作成すると、ggplot2 は自動的に棒をアルファベット順に積み上げます。

 library (ggplot2)

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' stack ', stat=' identity ') 

各積み上げバーには、位置 (上から下) がアルファベット順に表示されることに注意してください。

棒を特定の方法で再配置するには、位置変数を因子に変換し、 level引数を使用して積み上げ棒グラフ内で棒が配置される順序 (上から下) を指定します。

 library (ggplot2)

#convert 'position' to factor and specify level order
df$position <- factor(df$position, levels=c(' F ', ' G ', ' C '))

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' stack ', stat=' identity ') 

バーは、 level引数で指定した正確な順序で (上から下に) 積み上げられます。

追加リソース

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

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

コメントを追加する

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