ggplot2-複数のプロット
この章では、3次元プロットの作成にさらに使用できる複数のプロットの作成に焦点を当てます。カバーされるプロットのリストには以下が含まれます-
- 密度プロット
- 箱ひげ図
- ドットプロット
- バイオリン図
前の章で使用した「mpg」データセットを使用します。このデータセットは、38の人気モデルの自動車の1999年と2008年の燃費データを提供します。データセットはggplot2パッケージに同梱されています。さまざまなタイプのプロットを作成するには、以下の手順に従うことが重要です。
> # Load Modules
> library(ggplot2)
>
> # Dataset
> head(mpg)
# A tibble: 6 x 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compa~
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compa~
3 audi a4 2 2008 4 manual(m6) f 20 31 p compa~
4 audi a4 2 2008 4 auto(av) f 21 30 p compa~
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compa~
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compa~
密度プロット
密度プロットは、言及されたデータセット内の数値変数の分布をグラフで表したものです。カーネル密度推定を使用して、変数の確率密度関数を示します。
「ggplot2」パッケージには、密度プロットを作成するためのgeom_density()という関数が含まれています。
次のコマンドを実行して、密度プロットを作成します-
> p −- ggplot(mpg, aes(cty)) +
+ geom_density(aes(fill=factor(cyl)), alpha=0.8)
> p
以下に作成したプロットからさまざまな密度を観察できます-
x軸とy軸の名前を変更することでプロットを作成できます。これにより、さまざまな色の組み合わせでタイトルと凡例を含めることで、より明確になります。
> p + labs(title="Density plot",
+ subtitle="City Mileage Grouped by Number of cylinders",
+ caption="Source: mpg",
+ x="City Mileage",
+ fill="# Cylinders")
箱ひげ図
箱ひげ図とも呼ばれる箱ひげ図は、データの5つの数値の要約を表します。5つの数値の要約には、最小、第1四分位、中央値、第3四分位、最大などの値が含まれます。箱ひげ図の中央部分を通る垂直線は「中央値」と見なされます。
次のコマンドを使用して箱ひげ図を作成できます-
> p <- ggplot(mpg, aes(class, cty)) +
+ geom_boxplot(varwidth=T, fill="blue")
> p + labs(title="A Box plot Example",
+ subtitle="Mileage by Class",
+ caption="MPG Dataset",
+ x="Class",
+ y="Mileage")
>p
ここでは、classとctyの属性に関して箱ひげ図を作成しています。
ドットプロット
ドットプロットは、次元の違いだけを除いて、分散プロットに似ています。このセクションでは、既存の箱ひげ図にドットプロットを追加して、画像と明瞭さを向上させます。
箱ひげ図は、次のコマンドを使用して作成できます-
> p <- ggplot(mpg, aes(manufacturer, cty)) +
+ geom_boxplot() +
+ theme(axis.text.x = element_text(angle=65, vjust=0.6))
> p
ドットプロットは、以下のように作成されます-
> p + geom_dotplot(binaxis='y',
+ stackdir='center',
+ dotsize = .5
+ )
バイオリン図
バイオリン図も同様の方法で作成され、ボックスではなくバイオリンの構造が変更されます。出力は以下に明確に記載されています-
> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()