ggplot2 / ggpubr で publication-ready な図を整える

From ggplot basics to cleaner presentation graphics in R

「図は描けるようになったけれど、もう少し見栄え良く整えたい」という段階で役立つ、ggplot2 と ggpubr の実務ページです。

講義資料では、ggplot2 の考え方を <strong>Plot = data + aesthetics + geometry</strong> として整理し、散布図・箱ひげ図・ヒストグラム・レイヤー・theme・facet・ggpubr の publication-ready な配色まで紹介していました。

このページでは、まず散布図 + 回帰線 + facet を作り、そのあと ggpubr の密度図や palette を使って「見せる図」へ整えていく流れを扱います。

R実務・整備 ggplot2ggpubrthemefacetpalette

このページのゴール

  • ggplot2 の基本構造を data / aes / geom で説明できる
  • 色、形、theme、facet を統一的に調整できる
  • ggpubr を使って publication-ready な配色や密度図を試せる
  • 図キャプションや方法欄に書くべき要素を整理できる
···

ggplot2 は「文法」で組み立てる

data + aesthetics + geometry を土台に、theme、色、facet、ggpubr を積み上げると、見やすい図へ整えやすくなります。

ggplot2 の強みは、図表の種類が違っても書き方の骨格が揃っていることです。ggplot(data, aes(...)) + geom_... の形が分かれば、散布図、箱ひげ図、ヒストグラム、回帰線つき散布図へ応用できます。

このページでは、まず素の散布図を作り、その上に色分け、回帰線、facet、theme を重ねていく「レイヤーの考え方」を押さえます。

···

図を整えるときにまず見ること

目的

探索なのか、発表用なのか、論文図なのかで整え方は少し変わります。

群の数

色分けする群が多すぎると見づらくなります。facet の方がよい場面もあります。

theme の統一

サイトやレポート全体で同じ theme を使うと、一貫性が出ます。

色覚多様性

色だけに依存せず、形や facet でも区別できると読みやすくなります。

···

作図前のチェック

まずデータ型を確認し、連続変数かカテゴリ変数かを把握します。群を色分けしたいなら factor 化しておくとよいです。str(iris) の段階で、どの列を x / y / color / shape / facet へ使うかを決めてから描き始めると、試行錯誤が減ります。

···

ここでは iris を使う

練習では built-in の iris データセットを使います。Sepal.LengthSepal.Width を連続変数、Species を群変数として使うと、散布図・回帰線・facet の全部を試しやすいです。

···

Rコードを順番に実行する

Rコード:散布図の基本形base
library(ggplot2)

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
  geom_point()
Rコード:群ごとの色分けと回帰線layers
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
  geom_point(aes(color = Species, shape = Species), size = 2.2) +
  geom_smooth(aes(color = Species, fill = Species), method = "lm", se = FALSE) +
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
Rコード:theme と facet を使って整えるpresentation
theme_set(theme_classic())

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +
  geom_point(aes(color = Species)) +
  geom_smooth(aes(color = Species, fill = Species), method = "lm") +
  facet_wrap(~Species, nrow = 1)
Rコード:ggpubr で密度図を作るggpubr
library(ggpubr)

ggdensity(
  iris,
  x = "Sepal.Length",
  add = "mean",
  rug = TRUE,
  color = "Species",
  fill = "Species",
  palette = "jco"
)
···

見栄えだけでなく、伝えたい差が見えるか

publication-ready な図で大切なのは、単にきれいであることではなく、読み手がどこを見るべきかが分かることです。色、形、facet、凡例、タイトル、軸ラベルのうち、何が本当に必要かを整理していきます。

···

facet と palette の使い分け

群が3つ程度までなら色分けだけでも十分ですが、群が増えると facet の方が読みやすくなることがあります。ggpubr の palette は「色選びで迷いすぎない」ための便利な近道として使うとよいです。

···

図の説明をどう書くか

日本語の例

図1に Species 別の散布図と回帰線を示した。setosa は sepal length が比較的短い一方で sepal width が大きく、versicolor と virginica は一部重なりつつも分布の中心が異なっていた。

English example

Figure 1 shows scatter plots and fitted regression lines by species. Setosa tended to have shorter sepal length but greater sepal width, whereas versicolor and virginica partly overlapped but showed different central tendencies.

図キャプション例: 図1 Species 別の散布図と単回帰直線。

···

つまずきやすい点

色だけで群を区別する

形や facet も併用すると読みやすくなります。

凡例やタイトルを盛り込みすぎる

情報量が多すぎると、かえって図の主張がぼやけます。

theme をページごとに変える

レポート全体で統一感がなくなりやすいです。

色コードを毎回手入力して散らかる

よく使う palette や scale を関数化しておくと再利用しやすくなります。

···

よくある質問

Q. まず theme は何を使えばいいですか?

A. 入門段階では theme_classic()theme_minimal() が扱いやすいです。

Q. ggpubr は必須ですか?

A. 必須ではありません。ggplot2 だけで十分作図できますが、配色や補助関数が便利です。

Q. facet と色分けのどちらが良いですか?

A. 群数が少なければ色分け、群数が多い・重なりが強いなら facet の方が読みやすいことが多いです。

···

代替手法・次のステップ

用途に応じて、よりシンプルな theme、より複雑な組図、地図描画などへ進めます。

base R の plot()

素早く試すだけなら base plot でも十分です。

patchwork / cowplot

複数の ggplot 図を1枚へ綺麗に組みたいときの発展先です。

sf + ggplot2

同じ ggplot 文法で地図へ広げたいときは、空間データページへ進めます。

···

参考資料

まず ggplot2 の基本、そのあと ggpubr とカラーパレットを見ると応用しやすいです。

···

このページの位置づけ

本サイトのトピックページは、Rによるデータ分析の学習支援とレポート作成の補助を目的としたオリジナル解説です。サンプルデータとコードは再現練習用に作成しているため、実データを扱う際には研究計画・前提条件・欠測・外れ値・尺度水準をあらためて確認してください。

編集方針

ページ本文は、標準的な統計手法、Rの公式ドキュメント、一次資料に近い参考文献を優先して整理しています。更新や訂正の方針は編集方針ページで公開しています。

サイト情報

運営の目的、広告掲載方針、プライバシーポリシー、問い合わせ方法はサイト情報ページ群にまとめています。

···