【发布时间】:2012-06-26 04:33:01
【问题描述】:
我想用knitr 在降价文件中用两个图在 R 中制作一个图形。通常,使用layout(t(1:2)) 或par(mfrow=c(1,2)) 很容易做到这一点。我可以用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 文件,而在于 markdown 文件 junk.md 包含这两个文件。
当我将该标记转换为 html 时,它包含两个 .png 文件,而我只想要一个同时绘制两个数字的文件。
这是从 knitr 生成的文件junk.md:
```r
par(mfrow = c(1, 2))
pie(islands)
```

```r
barplot(islands)
```

【问题讨论】:
-
严格来说这是
knitr(github.com/yihui/knitr/issues/292)的bug;我稍后会尝试修复它;谢谢 -
我在开发版中有fixed这个bug:github.com/yihui/knitr#readme你当然可以使用
fig.keep='last',但是不再需要了。