6.6 LaTeX で複数の図をまとめる

複数の画像を1つの画像環境に含めたいときがあるかもしれません. 複数の画像 (sub-figures, サブ図) を1つの環境に配置しそれぞれに副題を与えることで, サブ図をまとめることができます.

複数の図をまとめるには LaTeX パッケージの subfig が必要です. pdf_document 出力の YAML オプションの extra_dependencies で読み込ませることができます. 例は以下のようになります.

---
output:
  pdf_document:
    extra_dependencies: "subfig"
---

あるコードチャンクからの全てのプロットを並べるためには, チャンクオプション fig.cap (環境全体のキャプション) と fig.subcap (サブ図のためのキャプションの文字列ベクトル) を使わなければなりません. 最良の出力を得るためには, 以下のような選択肢も使用できます.

  • fig.ncol: サブ図の列の数です. デフォルトでは全てのグラフが単一の行に並べられます. これを使って複数の行に分けられます.

  • out.width: 個別のグラフの出力幅です. 通常はこれを 100% を列の数で割ったものに設定します. 例えば2つグラフがあるなら, out.width50% 以下にすべきです. そうしないとグラフはページの外枠をはみ出すかもしれません.

以下は具体例の1つです.

---
output:
  pdf_document:
    extra_dependencies: "subfig"
---
```{r, fig.cap='Figure 1', fig.subcap=c('(a)', '(b)', '(c)')}
plot(1:10)
plot(cars, pch = 19)
boxplot(Sepal.Width ~ Species, data = iris)
```

この出力を図6.2に示します. 簡潔にするために, 上記の例はチャンクヘッダの fig.ncol = 2, out.width = "50%", fig.align = "center" や長くなるキャプションなどのチャンクオプションをいくつか省略しています.

複数の図を含む単一の figure 環境の例

図 6.2: 複数の図を含む単一の figure 環境の例