6

我想在 R 中制作一个带有两个图的降价文件中的单个数字knitrlayout(t(1:2))通常,使用or很容易做到这一点par(mfrow=c(1,2))。我可以用 来做到这一点knitr,还是它总是会产生两个单独的数字?

这是一个最小的工作示例,它在您的工作目录中创建一个名为./junk.Rmdand的文件以及两个文件(仅包括第一个图)和(包括我想要的两个图)。./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)
```

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

```r
barplot(islands)
```

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

1 回答 1

12

看看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) 
于 2012-06-26T04:39:41.343 回答