ggplot2 の基本形
ggplot2 を使って、データを視覚化するときの基本的な書式を紹介します。
前回、ヒストグラムを作成する例を紹介しました。そのときに使用した、「ggplot() + geom_xxxxxxx() 」というのが最低限の書式です。(表示後に ggsave()で保存。)geom_xxxxxxx() の部分は、視覚化の方法(グラフ)によって使い分けます。
これだけでグラフ自体は表示されます。さらに、文字のサイズや、x軸、 y軸のラベル、凡例(レジェンド)の表示をカスタマイズするには、 theme() や labs() を追加します。下記が基本形です。
ggplot() + geom_xxxxxxx() + theme() + labs()
また、色を変える場合は、 scale_color_manual(), scale_color_gradient(), scale_fill_distiller() などが必要です。
ggplot() + geom_xxxxxxx() + scale_color_manual()+ theme() + labs()
このように、まず、 ggplot() + geom_xxxxxxx() で表示しておいて、見た目の変更は、後で追加するという形になります。
geom関数の使い分け
geom_xxxxxxx() の関数には、下記のようなものがあります。
ヒストグラム: geom_histogram()
散布図: geom_point()
バイオリンプロット: geom_violing()
ドットプロット: geom_dotplot()
ヒートマップ: geom_tile()
折れ線グラフ: geom_line()
その他、チートシートにまとめられています。
見た目を変更したヒストグラム
色の変更や、ラベルを指定したヒストグラムの例です。scale_fill_distiller() を使って、値に応じて色を変化させてます。名前がややこしいですが coord_cartesian() 関数は、描画するグラフの範囲を指定する関数です。ここでは、-2 < x < 2 の範囲を指定しています。theme_light() は、背景の色などをシンプルなものに変更するために適用しています。最後に labs() 関数で、ヒストグラムのタイトルと、Y軸のラベルを指定しています。
input_data <- tibble("Sample1" = rnorm(100))
ggplot(input_data, aes(Sample1)) +
geom_histogram(bins = 20, aes(fill = after_stat(x)))) +
scale_fill_distiller(palette = "Blues") +
coord_cartesian(xlim = c(-2, 2)) +
theme_light() +
labs(title = "histogram", y = "read count")
*ggplotの関数は、途中で改行して書くことができます。上記では、見やすいように + の後に改行しています。
途中のコードを格納
途中のコードをオブジェクトに格納することもできます。例えば、 下記のようにすると、g というオブジェクトに格納できます。
g <- ggplot(input_data, aes(Sample1)) + geom_histogram(bins = 20)
オブジェクトに格納した場合、そのグラフは描画されません。格納後に、 「g が呼ばれた時」に描画されます。データを視覚化する場合、通常、視覚化された結果を見ながら、色や、ラベルの変更をして何度も調整することになります。そのとき、前半の ggplot() と geom_()の部分は変更しないことが多いので、いったん、これをオブジェクトに登録しておくと、見た目の調節が楽です。
> g
# 通常のヒストグラムを表示
>
> g + theme_light()
# テーマを変更して表示
>
> g + theme_light() + labs(title = "histogram")
# テーマを変更して、タイトルをつけて表示
また、複数のグラフをまとめて1枚に表示する場合も、いったん、オブジェクトに格納しておいて、一度に呼び出すことで対応できます。また、別で紹介します。(patchwork というライブラリを使用します。)