R: ggplot の基本的な使い方

UB3/informatics/r/r_ggplot

このページの最終更新日: 2022/07/28

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

広告

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

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

このページでは、ggplot のアップデート版である 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のキャンパス

ここに、+ 記号を使ってラベルを追加したり、軸範囲を追加したりしていく (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_smooth で回帰直線も加えている。

ggplot 散布図
広告

ggplot で散布図を作る

基本的には上の例の通り。geom_point を使用する。数式を追加するなど、さらに多くのオプションについては ggplot で散布図を作る へ移動。

ggplot で棒グラフを作る

棒グラフで表示順を指定したいときは、データフレームに order などという列を作り、順番の数値を入れた上で aes(x = reorder(x軸にしたいカラム、order)) とする。

その他 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.

コメント欄

各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。

禁止ワード: http, the, м (ロシア語のフォントです)


このページにコメント

Name:


Comment:



これまでに投稿されたコメント

Date Name Comment