使用knitr布局

时间:2012-06-26 04:33:02

标签: r markdown knitr

我想在R中使用knitr在markdown文件中创建一个带有两个图的单个图形。通常,使用layout(t(1:2))par(mfrow=c(1,2))很容易做到这一点。我可以使用knitr执行此操作,还是总是会生成两个单独的数字?

这是一个最小的工作示例,它在您的工作目录中创建一个名为./junk.Rmd./junk.md的文件以及两个文件./figure/junkislands1.png(仅包含第一个图)和{{1 (包括我想要的两个图)。

./figure/junkislands2.png

问题不在于它创建了两个.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") 包含了这两个文件。

当我将标记降为html时,它包含两个.png文件,当我只想要绘制两个数字时。

这是从knitr生成的文件junk.md

junk.md

1 个答案:

答案 0 :(得分:11)

请查看http://yihui.name/knitr/options,特别是fig.keep。我想你想要fig.keep = 'last'

require(knitr)
temp <- "```{r junkislands, fig.width=8, fig.height=5, fig.keep = 'last'}
layout(t(1:2))
pie(islands)
barplot(islands)
```"
cat(temp, file="junk.Rmd")
knit("junk.Rmd", "junk.md")

给出

```r
layout(t(1:2))
pie(islands)
barplot(islands)
```

![plot of chunk junkislands](figure/junkislands.png)