R の facet_wrap() と facet_grid() の違い
ggplot2 パッケージのfacet_grid() 関数とfacet_wrap()関数はどちらも、プロットのグリッドを生成するために使用できます。
2 つの関数の主な違いは次のとおりです。
- facet_grid()関数は、一部のプロットが空であっても、指定した変数の組み合わせごとにプロットのグリッドを生成します。
- facet_wrap()関数は、値を持つ変数の組み合わせのプロットのみを生成します。つまり、空のプロットは生成されません。
次の 2 つの例は、次のデータ フレームを使用して、これら 2 つの関数の違いを示しています。
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'G', 'G'),
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 position points assists
1 GA 8 10
2 AG 14 5
3 FY 20 5
4 AF 22 3
5 BG 25 8
6 BG 29 6
7 BG 30 9
8 BG 31 12
例 1: facet_grid() 関数の使用
次のコードは、 facet_grid()を使用して、チームとポジションの組み合わせごとにアシストとポイントの散布図を表示するグリッドを作成する方法を示しています。
library (ggplot2)
ggplot(df, aes (assists, points)) +
geom_point() +
facet_grid(position~team)
元のデータ フレームにチーム値Bとポジション値Fの値が存在しない場合でも、散布図はチームとポジションの組み合わせごとに生成されることに注意してください。
facet_grid()の仕組みは次のとおりです。一部のプロットが空であっても、指定した変数の組み合わせごとにプロットが生成されます。
例 2: facet_wrap() 関数の使用
次のコードは、 facet_wrap()を使用して、既存のチームとポジションの組み合わせごとにアシストとポイントの散布図を表示するグリッドを作成する方法を示しています。
library (ggplot2)
ggplot(df, aes (assists, points)) +
geom_point() +
facet_wrap(position~team)
散布図は、元のデータ フレームに存在するチームとポジションの組み合わせに対してのみ作成されることに注意してください。
これは、チームBとポジションFの組み合わせについては、元のデータ フレームにその特定の組み合わせの値が存在しないため、プロットは作成されないことを意味します。
これがfacet_wrap()の仕組みです。空のパスは決して生成されません。
注: facet_grid()およびfacet_wrap()関数の完全なガイドについては、ggplot2 のドキュメントを参照してください。
追加リソース
次のチュートリアルでは、ggplot2 で他の一般的なタスクを実行する方法を説明します。