ggplot による散布図の作成

UB3/informatics/r/ggplot_scatter

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

  1. 概要: ggplot 散布図の作り方
  2. タイトルと軸ラベルを追加する
  3. 複数のデータ群を色を変えてプロットする
  4. データラベルを追加する
  5. 注釈 (任意のテキスト) を追加する
  6. 途中波線を入れて軸の一部を省略する
  7. その他の ggplot 散布図グラフオプション

別ページ

  1. ggplot 散布図に回帰直線や相関係数を追加する

広告

概要: ggplot 散布図の作り方

ggplot2 による図形描画は、以下の 3 ステップから成る。基本的な使い方は ggplot のメインページ にまとめたので、リンク先を参照のこと。

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

このページでは、ggplot を使って散布図を作り、それにいろいろな要素を付け足していく方法をまとめる。

まずは、基本的な散布図。組み込みデータセット trees を使用。


ggplot 散布図

軸の範囲や break を指定したいときは、scale_y_continuous(breaks=seq(0,120,length=5),limits=c(0,120)) のようにする (参考)。

点のサイズは、geom_point(aes(size = 1)) のようにする。グラフ全体を小さくすると、点も自動で 1 より小さくなる。ここで size = 1 とすると逆に点が大きくなってしまい、ちょっとどうなっているのかよくわからない。

タイトルと軸ラベルを追加する

軸ラベルの追加には、labs を使用する。グラフの X 軸ラベル、Y 軸ラベルもここで追加できる。


ggplot 散布図

複数のデータ群を色を変えてプロットする

複数のデータ群を色を変えてプロットするときは、ggplot のところで color で設定する。

ここだけ、mtcars という異なるデータセットを使っている。この例の場合、am が連続変数として認識され、カラースケールバーつきになる。

Rの組み込みデータセット mtcars

ggplot 散布図

カテゴリー変数のカラムを指定すれば、グループ分けになる。am を使う場合でも、0 と 1 をカテゴリー変数として読み込めば良いので、以下のように as.factor() 関数を使用する。

ggplot 散布図

シンボルの色指定は + scale_color_manual(values=c("black","black")) など (参考)。

凡例を消すのは + theme(legend.position = 'none')。

データラベルを追加する

ggplot の部分で label を設定し、geom_point() のかわりに geom_text() を指定する。点でなく、実際の値がプロットされる。もとのデータが文字列ならば、文字がそのままプロットされる。

ggplot 散布図 データラベル

geom_text() でなく、geom_label() とするとこうなる。

ggplot 散布図 データラベル

ggrepel というパッケージを使い、geom_label_repel() にするパターン。これは、ポイントから線を引いた形で表示される。

ggplot 散布図 データラベル

ラベルをテキストだけにしたい場合は、geom_text_repel() とする。これはスペースが十分にあるので、ポイントから線が引かれていないが、表示するテキストが長くなれば、位置などは自動調整される。

ggplot 散布図 データラベル

注釈 (任意のテキスト) を追加する

散布図上に任意のテキストを追加するには、+annotate を用いる (参考)。

"text" で文字列を指定。"segment" で線分、"rect" で網掛けなど、いろいろなパターンがある。

x, y は、アノテーションの座標を指定する。x 軸および y 軸の値になる。下の図では、もともと x は 10 から始まっていたが、x = 0 を指定してしまったので軸の方が変更された。

hjust は horizontal adjust で、文字が x 軸方向に動く。vjust は vertical で縦に動く。

label には、ベクターを代入することも可能。

ggplot 散布図 データラベル

途中波線を入れて軸の一部を省略する

値がある範囲に集中しているが、いくつか外れ値があるようなデータでは、そのまま散布図にすると見にくくなる。途中波線を入れて、軸の一部を省略することで、混んでいる部分を見やすくできる。

ggbreak パッケージを使う。いずれまとめたいが、とりあえずは 参考ページにリンクしておく

その他の ggplot 散布図グラフオプション

theme_

g <- g + theme_bw() などのようにすることで、カラーパターンを決められる。図はbw()。

ggplot 散布図

bw() のほか、classic()、light()、dark() などいろいろ。このページ に例が多数。

theme(aspect.ratio=1)

g <- g + theme(aspect.ratio=1) などのようにすることで、散布図の縦横比を決めることができる。散布図の場合、1 : 1 にしたいことが多いだろう。

theme(legend.position = 'none')

Legend を非表示にする。

after_stat

ggpmisc というパッケージが秀逸。情報は ここ に。after_stat はその一つ。

after_stat(eq.label), after_stat(rr.label) で、回帰直線の式と R2 を追加。参考ページ

軸の範囲

scale_x_continuous(limits = c(1, 9)) のように指定する。


広告

References

  1. ggplot2で散布図を作成. Link: Last access 2023/11/05.

コメント欄

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