6

我有一种情况,出于显示目的,我需要将输出的绘图包装在<div>容器中。

在最基本的层面上,这是我想做的:

```{r fig.width=7, fig.height=6,results='asis',echo=FALSE}
cat('<div>')
plot(cars)
cat('</div>')
```

但是,输出文档如下所示:

![plot of chunk unnamed-chunk-2](figure/unnamed-chunk-2.png)

如果您需要“包装”输出,是否有解决方法?

同样的行为似乎只在包装情节时才会发生。否则,包括封闭标签将按预期工作:

```{r fig.width=7, fig.height=6,results='asis',echo=FALSE}
cat('<div>')
cat('</div>')
plot(cars)
cat('<h1>Hello</h1>')
``` 

然而,包装图像似乎打破了它。我也注意到<img>被包裹在<p>是否有可能阻止这种行为?

4

1 回答 1

6

这是一种方法。

  1. 首先,我们创建一个块挂钩来将块输出包装在标签内。
  2. 我们将wrap = div作为块选项传递给 wrap inside div
  3. 设置out.extra = ""knitr输出 html 以进行绘图输出。请注意,这仅适用于divtag 而不是span,因为 markdown 是在spantag.s中解析的

完毕!

这是Rmd、md 和 html 文件的要点,这里是html预览

## knitr Chunk Hook to Wrap

```{r setup, echo = F}
knit_hooks$set(wrap = function(before, options, envir){
  if (before){
    paste0('<', options$wrap, '>')
  } else {
    paste0('</', options$wrap, '>')
  }
})
```


```{r comment = NA, echo = F, wrap = 'div', out.extra=""}
plot(mtcars$mpg, mtcars$wt)
```
于 2013-03-12T23:59:59.437 回答