見出し画像

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 というライブラリを使用します。)


いいなと思ったら応援しよう!