Quarto. subfigures

Quarto. subfigures

2026-02-01 · 3 мин. для прочтения
blog computer-science

Quarto. subfigures.

Содержание

1 Общая информация

  • В Quarto есть несколько способов создать композицию из нескольких изображений (subfigures).
  • Основные методы и их ключевые свойства:
МетодЛучше всего подходит дляКлючевая опция / АтрибутНужны отдельные метки
Один блок с кодомНескольких графиков из одного блока кодаfig-subcap: ["Подпись A", "Подпись B"]Нет, создаются автоматически
Блоки div (:::)Статических изображений, смешанного контента#fig-метод внутри внешнего divДа, для каждого вложенного блока
Несколько блоков кодаНескольких независимых блоков кодаlayout-ncol: 2 в div-контейнереДа, для каждого блока

2 Графики из одного исполняемого блока

  • Самый распространённый метод для исполняемых блоков.
  • В одном блоке кода генерируется несколько графиков, а параметры fig-subcap и layout-ncol управляют подписями и расположением.
```{r}
#| label: fig-mtcars-plots
#| fig-cap: "Характеристики автомобилей (данные mtcars)"
#| fig-subcap:
#|   - "Зависимость расхода от веса"
#|   - "Зависимость мощности от объёма двигателя"
#| layout-ncol: 2

# Первый график
plot(mtcars$wt, mtcars$mpg, main = "График 1")
# Второй график
plot(mtcars$disp, mtcars$hp, main = "График 2")
```
  • Перекрёстные ссылки: на основную фигуру ссылайтесь через @fig-mtcars-plots, а на подрисунки — через @fig-mtcars-plots-1 и @fig-mtcars-plots-2.

3 Div-контейнер для статических изображений

  • Используйте div-контейнеры (:::) с атрибутом layout-ncol или layout-nrow для группировки обычных изображений.
  • Внешнему div задаётся общая подпись (fig-cap), а каждому изображению внутри — своя метка.
:::{#fig-landscapes layout-ncol=2}
![Зимний пейзаж](snow.jpg){#fig-snow}
![Летний пейзаж](forest.jpg){#fig-forest}

Пример двух сезонов в одном кадре.
:::
  • Перекрёстные ссылки: используйте @fig-landscapes для всей группы, @fig-snow и @fig-forest для отдельных изображений.

4 Несколько независимых блоков кода в контейнере

  • Если графики создаются разными блоками кода, поместите эти блоки в div-контейнер с атрибутом layout-ncol или layout-nrow.
:::{#fig-independent layout-ncol=2}
```{r}
#| label: fig-histogram
#| fig-cap: "Гистограмма распределения"
# Гистограмма
hist(rnorm(100))
```
```{r}
#| label: fig-boxplot
#| fig-cap: "Диаграмма размаха"
# Boxplot
boxplot(rnorm(100))
```
Гистограмма и boxplot для нормального распределения.
:::

5 Дополнительные возможности и настройки

5.1 Сложные макеты

  • Для нестандартного расположения используйте атрибут layout с двумерным массивом.
  • Например, layout="[[1,1], [1]]" создаст первый ряд из двух колонок и второй ряд из одной колонки.

5.2 Только буквы без текста

  • Если нужны только буквы (a), (b), а не полные подписи, укажите fig-subcap: true вместо списка текстов.

5.3 Кастомизация ссылок

  • В тексте можно управлять видом ссылки.
  • Например, [@fig-mtcars-plots] даст “Figure 1”, а [-@fig-mtcars-plots] — просто “1”.

5.4 Подпись начинается со скобки (a)

  • Pandoc может интерпретировать строку, начинающуюся со скобки, как начало списка.
  • Чтобы этого избежать, используйте обратный слеш: \(a) Описание....

5.5 Переносы строк в длинных атрибутах

  • Если нужно перенести длинную строку с атрибутами, закрывающую фигурную скобку } можно перенести на новую строку.
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.