R: ggplot の基本的な使い方
UB3/informatics/r/r_ggplot
このページの最終更新日: 2022/07/28- 概要: ggplot の基本的な使い方
- パターン 1: + で情報を追加していく
- パターン 2: オブジェクトを上書きしていき plot する
- ggplot で散布図を作る
- ggplot で棒グラフを作る
- その他 ggplot メモ
広告
概要: ggplot の基本的な使い方
ggplot は、きれいなグラフ・複雑なグラフを作成できる R のパッケージ、またはそのパッケージに含まれる関数である。
このページでは、ggplot のアップデート版である ggplot2 の概要をまとめる。
ggplot2 による図形描画は、以下の 3 ステップから成る (参考)。
- ggplot でキャンバスを準備する
- geom などでグラフをキャンバス上に作成 (重ね書きもできる)
- theme などでフォント、色などの設定を追加
R デフォルトの関数と書き方が異なるため、個人的には少々とっつきにくい気がしていた。以下の 2 つのパターンが整理できてから馴染めるようになったので、まずはここから始める。
+ で情報を追加していく
散布図を例に説明する。まずは、ggplot でキャンバスを準備する。
最初の ggplot の基本形は以下の通り。data でデータフレームを指定する。aes は、グラフの基本的な形や色を決めるための関数で、ここでは X 軸と Y 軸を指定している。
data = は省略可能で、実際のコマンドは以下のようになる。mtcars は R の 組み込みデータセット、mpg と wt はそれに含まれる列名なので、このコマンドは基本的にどんな状況でも動き、以下のようなキャンパスが表示されるはず。

ここに、+ 記号を使ってラベルを追加したり、軸範囲を追加したりしていく (3)。
labs(x = "X label", y = "Y label") +
xlim(10, 40) + ylim(0, 8)

ここでややこしいのは、X, Y 軸のラベルをこのように指定しても、aes 関数の時点で使用するデータは決まっているということである。また、+ が次の行の先頭に来ると "Cannot use `+.gg()` with a single argument. Did you accidentally put + on a new line?" というエラーになる。
グラフ描画の関数は geom だが、geom_point は散布図、geom_smooth 回帰直線など、いろいろバリエーションがある。
geom_point()

オブジェクトを上書きしていき plot する
同じ作業を、別の方法でやってみる。
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 で散布図を作る
基本的には上の例の通り。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
- R ggplot2を用いて散布図と周辺分布をプロットする方法
- ggplot2による可視化入門
- ggplotでの軸ラベル、タイトルの扱い方. Link: Last access 2022/07/28.
コメント欄
各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。
禁止ワード: http, the, м (ロシア語のフォントです)
|
|
このページにコメント
これまでに投稿されたコメント
Date | Name | Comment |
---|