Питання давнє, але все ще приділяє багато уваги. Оскільки існуючі відповіді застаріли, тут є більш сучасне рішення:
Змінення розміру локальних зображень
Станом на knitr
1,12 є функція include_graphics
. З ?include_graphics
(наголос мій):
Основна перевага використання цієї функції полягає в тому, що вона є портативною в тому сенсі, що вона працює для всіх форматів документів, які knitr
підтримують, тому вам не потрібно думати, чи потрібно використовувати, наприклад, синтаксис LaTeX або Markdown, щоб вставити зовнішній зображення. Параметри фрагментів, пов’язані з графічним висновком, які працюють для звичайних R ділянок, також працюють для цих зображень, таких як out.width
і out.height
.
Приклад:
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
Переваги:
- Над відповіддю agastudy : Не потрібно ні зовнішніх бібліотек, ні повторного растрування зображення.
- Над відповіддю Шруті Капур : Не потрібно вручну писати HTML. Крім того, зображення входить до автономної версії файлу.
У тому числі генеровані зображення
Для складання шляху до сюжету, який генерується у фрагменті (але не входить у нього), корисними можуть бути варіанти фрагментів opts_current$get("fig.path")
(шлях до каталогу фігур), а також opts_current$get("label")
(мітка поточного фрагмента). Наступний приклад використовує fig.path
для включення другого з двох зображень, які були сформовані (але не відображаються) у перший фрагмент:
```{r generate_figures, fig.show = "hide"}
library(knitr)
plot(1:10, col = "green")
plot(1:10, col = "red")
```
```{r}
include_graphics(sprintf("%sgenerate_figures-2.png", opts_current$get("fig.path")))
```
Загальною схемою контурів фігур є те [fig.path]/[chunklabel]-[i].[ext]
, де chunklabel
є мітка фрагмента, де генерується сюжет, i
- це індекс ділянки (в межах цього фрагменту) і ext
є розширенням файлу (за замовчуванням png
у документах RMarkdown).