ggplot2 の基本型

ggplot2 の基本的な書式は、下記のようになっています。

ggplot() + geom_xxx() + スケール + コーディネイト + テーマ + ラベル

最初の ggplot() 関数では、使用するデータを含むオブジェクトと、オブジェクトのうち、実際使用するデータをaes()で宣言します。次の geom_xxx() 関数で、ヒストグラムや、散布図、ヒートマップといった表示形式を宣言します。 geom_bar(), geom_point(), geom_tile() などがあります。ここまでが、グラフの描画に最低限必要なオブジェクトです。

ある値に応じて、プロットの色やサイズを変更する場合は、スケールの部分で指定します。scale_fill_gradient() 関数や、scale_size() 関数があります。

コーディネイトの部分は、必須ではありませんが、描画する範囲 (従来の xlim, ylim に近い) を指定する場合に用います。coord_cartesian() 関数や、プロットの向きを回転させる coord_flip() 関数などがあります。

テーマの部分で、見た目の変更を行います。プロットの背景や、各軸の目盛りの書式などがまとめて定義されたテーマを指定できます。モノクロのテーマ (theme_bw), 明るいテーマ(theme_light), 従来のスタイル (theme_classic), 背景なし (theme_void) などがあります。

ラベルの部分で、x軸のラベル、y軸のラベル、タイトル、キャプションなどを指定します。labs( x = "x軸ラベル", y = "y軸ラベル", title ="タイトル")

全て指定すると、下記のようなコードになります。(1行に書く必要はありません。途中で、改行を入れることができます。)

input_data <- tibble("Sample1" = rnorm(100))

ggplot(input_data, aes(Sample1)) +
  geom_histogram(bins = 20, aes(fill = ..x..)) +
  scale_fill_distiller(palette = "Blues") +
  coord_cartesian(xlim = c(-2, 2)) +
  theme_light() +
  labs(title = "histogram", y = "read count")
設定を変更したヒストグラムの例

オブジェクトの保存

途中のコードをオブジェクトとして保存することもできます。確定している部分をオブジェクトにすることで、テーマだけ変更して確認したりといった、コードの再利用もしやすくなります。

オブジェクトに格納した段階では、グラフの描画は行われません。オブジェクトをコールした時点(=オブジェクトに代入しなかった場合)で描画されます。

g  <- ggplot(input_data, aes(Sample1))                 # g に格納。
gg <- g + geom_histogram(bins = 20, aes(fill = ..x..)) # gg に格納。

# グラフは、下記でコールされた時点で描画される。
gg + scale_fill_distiller(palette = "Blues") +
  coord_cartesian(xlim = c(-2, 2)) +
  theme_light() +
  labs(title = "histogram", y = "read count")
 

投稿者:

Atsushi Doi

株式会社セルイノベーター、主任研究員。理学博士。山口大学大学院理工学研究科修了。東京大学医科学研究所ヒトゲノム解析センターの特任助手を経て、株式会社GNIに主任研究員として勤務。その後、株式会社セルイノベーターの立ち上げに参加し、現在に至る。専門は、バイオインフォマティクス、おもにシステムバイオロジー。