Ggplot2 棒グラフで棒を並べ替える方法


デフォルトでは、 ggplot2 は棒グラフ内の棒を次の順序で配置します。

  • 因子変数は因子レベルによって分類されます。
  • 文字変数はアルファベット順にリストされています。

ただし、バーを別の特定の順序で並べることに興味がある場合もよくあります。

このチュートリアルでは、次のデータ フレームを使用してこれを行う方法について説明します。

 #create data frame
df <- data. frame (team = c('B', 'B', 'B', 'A', 'A', 'C'),
                 points = c(12, 28, 19, 22, 32, 45),
                 rebounds = c(5, 7, 7, 12, 11, 4))

#view structure of data frame
str(df)

'data.frame': 6 obs. of 3 variables:
 $ team: Factor w/ 3 levels "A","B","C": 2 2 2 1 1 3
 $ points: num 12 28 19 22 32 45
 $rebounds: num 5 7 7 12 11 4

例 1: 特定の因子の順序に基づいてバーを順序付ける

チームごとの頻度を表示する棒グラフを作成しようとすると、棒は自動的にアルファベット順に表示されます。

 library (ggplot2)

ggplot(df, aes(x=team)) +
  geom_bar ()

次のコードは、バーを特定の順序で並べ替える方法を示しています。

 #specify factor level order
df$team = factor(df$team, levels = c('C', 'A', 'B'))

#create bar chart again 
ggplot(df, aes(x=team)) +
  geom_bar ()

例 2: 数値に基づいてバーを注文する

数値に基づいてバーを並べ替えることもできます。たとえば、次のコードは、 reorder()関数を使用してバーを最高頻度から最低頻度まで並べる方法を示しています。

 library (ggplot2)

ggplot(df, aes(x= reorder (team, team, function (x)-length(x)))) +
  geom_bar () 

ggplot2 棒グラフの順序バー

reorder()関数のfunction()呼び出しのマイナス記号を削除することで、バーを最小頻度から最大頻度まで並べ替えることもできます。

 library (ggplot2)

ggplot(df, aes(x= reorder (team, team, function (x) length(x)))) +
  geom_bar () 

ggplot2 棒グラフで棒を最小から最大の順に並べる

追加リソース

geom_bar()関数のドキュメント
reorder()関数のドキュメント
統計に関する R チュートリアルの完全なリスト

コメントを追加する

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