Ggplot2 でファセットの順序を変更する方法 (例あり)
次の基本構文を使用して、ggplot2 のファセットの順序を指定できます。
p+
facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))
次の例は、この構文を実際に使用する方法を示しています。
例: ggplot2 のファセットの順序を変更する
R に次のデータ フレームがあるとします。
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
points=c(8, 14, 20, 22, 25, 29, 30, 31),
assists=c(10, 5, 5, 3, 8, 6, 9, 12))
#view data frame
df
team points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12
次のコードは、 facet_grid()を使用して、各チームのアシストとポイントの散布図を表示するグリッドを作成する方法を示しています。
library (ggplot2)
#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(.~team)
デフォルトでは、ggplot2 は、データ フレームのチーム変数に最初に現れる値に基づいて散布図を順番に配置します。
ただし、チームを因子変数に変換し、レベル引数を使用してプロット内にチームを配置する順序を指定できます。
library (ggplot2)
#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B ')))
点群は、レベル引数で指定した順序 (C、D、A、B) に従って順序付けされることに注意してください。
このアプローチを使用する利点は、基になるデータを実際に変更しないことです。
代わりに、 facet_grid()関数内のレベルのみを変更します。
追加リソース
次のチュートリアルでは、ggplot2 で他の一般的なタスクを実行する方法を説明します。