Вопрос старый, но все еще привлекает много внимания. Поскольку существующие ответы устарели, вот более современное решение:
Изменение размера локальных изображений
Начиная с 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).
person
CL.
schedule
17.03.2016