R言語データの視覚化ggplot2basics 2は、ファセットを作成するための単層散布図を作成します
単層散布図
このレッスンでは、最も単純な散布図から始めて、ggplot2アプリケーションの基本を紹介します。最初に、tidyverseパッケージをダウンロードして適用します。
install.packages("tidyverse")
library(tidyverse)
たとえば、tidyverse独自のデータmpgを使用します。
> ggplot2::mpg
# A tibble: 234 x 11
manufacturer model displ year cyl trans drv cty
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int>
1 audi a4 1.8 1999 4 auto~ f 18
2 audi a4 1.8 1999 4 manu~ f 21
3 audi a4 2 2008 4 manu~ f 20
4 audi a4 2 2008 4 auto~ f 21
5 audi a4 2.8 1999 6 auto~ f 16
6 audi a4 2.8 1999 6 manu~ f 18
7 audi a4 3.1 2008 6 auto~ f 18
8 audi a4 q~ 1.8 1999 4 manu~ 4 18
9 audi a4 q~ 1.8 1999 4 auto~ 4 16
10 audi a4 q~ 2 2008 4 manu~ 4 20
# ... with 224 more rows, and 3 more variables:
# hwy <int>, fl <chr>, class <chr>
このデータでは、displとhwyの2つの変数にさらに注意を払い、displはエンジンのサイズ(リットル)を表し、hwyは高速道路の燃費(マイル/ガロン)を表します。これら2つの変数の関係を示すために、最初に簡単な散布図を描きます。
ggplot(data = mpg)+
geom_point(mapping = aes(x = displ, y = hwy))
散布図のみが必要なため、レイヤードグラマーを作成する場合は、レイヤードグラマーを紹介するのではなく、最小限のコードで
ggplot()+
layer(data = mpg,mapping = aes(x = displ, y = hwy),
geom = "point",stat = "identity",position="identity")+
scale_y_continuous()+
scale_x_continuous()+
coord_cartesian()
このコードの出力は、最小コードによる画像出力と同じですが、このコードは、レイヤードグラマーに厳密に従って記述されています。ggplot()の先頭は、次のステップがグラフィックグラマーを使用してグラフィックオブジェクトを作成することであることを示しています。最初のステップはレイヤーを作成することです。レイヤーにはデータ、マッピング(美的マッピング)、幾何学的オブジェクト、統計的変換、位置調整が含まれます。2番目のステップはスケールと座標系を指定することです。レイヤード文法と最小コードを比較します。いくつかの直感の構築を開始できますが、省略できます。最小要件は何ですか。後続のコードサンプルでは、最小コードを使用します。
全体として、この散布図は下降傾向にありますが、右側の中央のポイントは線形フィッティング残差に非線形パターンを引き起こす可能性が高いため、この現象を説明する別の変数を導入して、異なるものを使用できるようにしたいと考えています。異なるモデルに対応する散乱点を示す色:
ggplot(data = mpg)+
geom_point(mapping = aes(x = displ, y = hwy, color = class))
このようにして、モデルごとにエンジンサイズと燃費の関係を比較することができます。
美的マッピングでcolor = classをalpha = class、shape = class、size = classに変更してみてください。これらの3つの文では、透明度、ポイントタイプ、ポイントサイズを使用してさまざまなモデルを表すことができます。
単層散布図ファセット
これらのモデルを比較のために1つの画像にまとめたくないが、サブプロットを使用して各モデルのエンジンサイズと燃料効率の関係を示す場合は、ファセットを作成する必要があります。
最小限のコード:
ggplot(data = mpg)+
geom_point(mapping = aes(x = displ, y = hwy))+
facet_wrap(~class,nrow = 2)
階層化された文法:
ggplot()+
layer(data = mpg,mapping = aes(x = displ, y = hwy),
geom = "point",stat = "identity",position="identity")+
facet_wrap(~class,nrow = 2)+
scale_y_continuous()+
scale_x_continuous()+
coord_cartesian()
facet_wrap(〜class、nrow = 2)は、車のモデルのデータがファセットを作成するためのサブプロットとして使用され、サブプロットが2行に均等に配置されることを意味します。
また、facet_wrap(〜class、nrow = 2)をfacet_grid(drv〜cyl)に変更するなど、2つの変数を使用してファセットを作成することもできます。
行を削除して列のみを保持する場合は、代わりにfacet_grid(。〜cyl)を使用できます。