Ggplot2-multiple-plots
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
ここでは、クラスと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()