ggplot による散布図の作成

UB3/informatics/r/ggplot_scatter

このページの最終更新日: 2024/10/12

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

別ページ

  1. ggplot 散布図に回帰直線や相関係数を追加する
  2. ggplot によるバブルプロットの作成: 散布図と同様に geom_point() を使う。

広告

概要: ggplot 散布図の作り方

ggplot2 による図形描画は、以下の 3 ステップから成る。基本的な使い方は ggplot のメインページ にまとめたので、リンク先を参照のこと。theme で設定する軸のフォントなど、散布図以外にも当てはまるような内容は、基本的にはメインページに載っている。

  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 軸ラベルもここで追加できる。

変数をタイトルや軸ラベルにしたい場合は、labs(title = paste0(vector)) で良い。


ggplot 散布図

タイトル、軸ラベルなどのスタイルを設定する

theme() を追加して設定する。この theme を使って、アスペクト比など様々な項目を設定することができる。ページ下方の表にまとめがある ので参照のこと。


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 パッケージを使う。いずれまとめたいが、とりあえずは 参考ページにリンクしておく

波線での分割とは少し異なるが、R ggplot: 複数のグラフをまとめて出力する のページでは、facet_wrap() 等でグラフを分割する方法も説明している。

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

+ で追加していけるもの、散布図でよく使うもの中心。theme など、ggplot 全般に使われるものは 概要 から ggplot のメインページへどうぞ。

after_stat

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

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

scale_color_manual

マニュアルでのシンボル色指定。aes で color を指定し、その数に応じて c() の中で色を指定する。

+ scale_color_manual(values=c("black","black"))

stat_ellipse()

確率楕円を追加する。


広告

References

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

コメント欄

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