R: ggplot の基本的な使い方

UB3/informatics/r/r_ggplot

このページの最終更新日: 2024/04/05

  1. 概要: ggplot の基本的な使い方
  2. ggplot で散布図を作る
  3. ggplot で棒グラフを作る
  4. その他 ggplot メモ

広告

概要: ggplot の基本的な使い方

ggplot は、きれいなグラフ・複雑なグラフを作成できる R のパッケージ、またはそのパッケージに含まれる関数である。

このページでは、ggplot のアップデート版である ggplot2 の概要をまとめる。このページを最初に作った 2023 年の時点で、ほぼ ggplot2 しか使われていない状況である。

ggplot2 による図形描画は、以下の 3 ステップから成る (参考)。

  1. ggplot でキャンバスを準備する
  2. geom などでグラフをキャンバス上に作成 (重ね書きもできる)
  3. theme などでフォント、色などの設定を追加

R デフォルトの関数と書き方が異なるため、個人的には少々とっつきにくい気がしていた。以下の 2 つのパターンが整理できてから馴染めるようになったので、まずはここから始める。

キャンバスを描画する

散布図を例に説明する。まずは、ggplot でキャンバスを準備する。

ggplot(data = dataframe, aes(x = 列名, y = 列名))

最初の ggplot の基本形は以下の通り。data でデータフレームを指定する。aes は、グラフの基本的な形や色を決めるための関数で、ここでは X 軸と Y 軸を指定している。

data = は省略可能で、実際のコマンドは以下のようになる。mtcars は R の 組み込みデータセット、mpg と wt はそれに含まれる列名なので、このコマンドは基本的にどんな状況でも動き、以下のようなキャンパスが表示されるはず。

ggplot(mtcars, aes(x = mpg, y = wt))

ggplotのキャンパス

aes は aesthetics の略で「美的要素」という意味。aes で指定できる項目は以下の通り (4)。

x, y

多くのグラフで必須である

color

点および線の色を指定

fill

塗りつぶしの色を指定。

size

点の大きさ、文字の大きさ、線の太さを指定r

shape

点の形を指定

linetype

線の種類を指定

group

色や形を変えずに、単にグループ分けする場合に指定

その他

xmin, xmax, ymin, ymax, xend, yend

+ で情報を追加していく

ここに、+ 記号を使ってラベルを追加したり、軸範囲を追加したりしていく (3)。

ggplot(mtcars, aes(x = mpg, y = wt)) +
   labs(x = "X label", y = "Y label") +
   xlim(10, 40) + ylim(0, 8)

ggplotのキャンパス

ここでややこしいのは、X, Y 軸のラベルをこのように指定しても、aes 関数の時点で使用するデータは決まっているということである。また、+ が次の行の先頭に来ると "Cannot use `+.gg()` with a single argument. Did you accidentally put + on a new line?" というエラーになる。


軸ラベルを追加するのと同じような感覚で、+ 記号を使ってグラフを重ねることも可能。

散布図に回帰直線を追加する場合など。グラフ描画の関数は geom だが、geom_point は散布図、geom_smooth は回帰直線など、いろいろバリエーションがある。

ggplot(mtcars, aes(x = mpg, y = wt)) +
geom_point()


ggplot 散布図

plot する

同じ作業を、別の方法でやってみる。

g <- ggplot(mtcars, aes(x = mpg, y = wt))
g <- g + labs(x = "X label", y = "Y label")
g <- g + xlim(10, 35) + ylim(0, 8)
g <- g + geom_point()
g <- g + geom_smooth(method = "lm", formula = y ~ x)
plot(g)

個人的には、この方法が好きである。ggplot などの関数の結果をオブジェクトに格納する。オブジェクト名は、ggplot にちなんで g とするのが格好いい。

最後に plot で g を可視化する。geom_point と geom_smooth があるので、回帰直線のある散布図になる。

ggplot 散布図

ggplot で散布図を作る

基本的には上の例の通り。geom_point を使用する。数式を追加するなど、さらに多くのオプションについては、以下のリンクを参照のこと。

ggplot で棒グラフを作る

ggplot の棒グラフは geom_bar である。一つだけ例を示しておく。詳細は ggplot で棒グラフを作る を参照のこと。

Rの組み込みデータセット swissの棒グラフ

その他 ggplot メモ

複数の図をまとめて表示するには grid.arrange を使い、grid.arrange(chart_1, chart_2, chart_3, chart_4, ncol = 2) のようにする。


広告

References

  1. R ggplot2を用いて散布図と周辺分布をプロットする方法
  2. ggplot2による可視化入門
  3. ggplotでの軸ラベル、タイトルの扱い方. Link: Last access 2022/07/28.
  4. ggplot2 — きれいなグラフを簡単に合理的に. Link: Last access 2023/06/20.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。