Я хочу сделать одну фигуру в R с двумя графиками в файле уценки с knitr
. Обычно это легко сделать с layout(t(1:2))
или par(mfrow=c(1,2))
. Могу ли я сделать это с помощью knitr
, или он всегда будет делать две отдельные цифры?Использование макета с knitr
Вот минимальный рабочий пример, который создает файл с именем ./junk.Rmd
и ./junk.md
в рабочем каталоге вместе с двумя файлами ./figure/junkislands1.png
(который включает в себя только первый участок) и ./figure/junkislands2.png
(который включает в себя как участки, которые я хочу).
require(knitr)
temp <- "```{r junkislands, fig.width=8, fig.height=5}
layout(t(1:2))
pie(islands)
barplot(islands)
```"
cat(temp, file="junk.Rmd")
knit("junk.Rmd", "junk.md")
Проблема заключается не столько в том, что он создает два .png файлов, а то, что файл уценка junk.md
включает в себя оба.
Когда я делаю это уценку в html, он включает в себя оба файла .png, когда мне нужен только тот, который изображен на обеих фигурах.
Вот файл junk.md
, который генерируется из knitr:
```r
par(mfrow = c(1, 2))
pie(islands)
```
![plot of chunk junkislands](figure/junkislands1.png)
```r
barplot(islands)
```
![plot of chunk junkislands](figure/junkislands2.png)
строго говоря, это ошибка в 'knitr' (https://github.com/yihui/knitr/issues/292); Я попытаюсь исправить это позже; спасибо –
У меня [исправлено] (https://github.com/yihui/knitr/commit/3508ddb86f0068c17570b3c71dc1e79414041627) эта ошибка в версии для разработки: https://github.com/yihui/knitr#readme. Вы можете использовать 'fig .keep = 'last'', но это больше не потребуется. –