r - 将绘图包装在 Rmd 文件中的另一个 html 容器中

标签 r knitr

我有一种情况,出于显示目的,我需要将输出图包装在 <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> 中有可能阻止这种行为吗?

最佳答案

这是一种方法。

  • 首先,我们创建一个 block Hook 来将 block 输出包装在标签内。
  • 我们通过wrap = div作为包裹在 div 内的 block 选项.
  • 设置 out.extra = ""愚弄knitr输出 html 以进行绘图输出。请注意,这仅对 div 是必需的。标签而不是 span , 因为 markdown 在 span 中被解析标签.s

  • 完毕!

    这是 gist带有 Rmd、md 和 html 文件,这里是 html preview
    ## 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)
    ```
    

    关于r - 将绘图包装在 Rmd 文件中的另一个 html 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370291/

    相关文章:

    r - 嵌套列表到单个表(按列名称合并?)

    r - 如何在 R 中按组查找下一个 k 值?

    r - knitr 不支持 SQL 公用表表达式中的语法高亮吗?

    r - 在循环内交错 R Markdown 中的表格和绘图

    html - 带有 `printr` 包的 HTML 表格格式

    r - 如何使用名称为 "invalid"(即包含空格)的 dplyr SE?

    执行平均关系的 Rcpp 等级函数

    r - 如何在 R 中使用 igraph 选择图形顶点?

    r - 安排邮件 R/Knitr 报告

    r - "' knitr ' not found"打包/小插图构建期间的错误