r - 有没有办法自动为 R Markdown 中的图像添加标识符?

标签 r knitr r-markdown

由于我正在尝试实现其他一些 javascript,我希望能够轻松区分和定位已编译的 RMarkdown 文件中的图像。使用此类代码块以标准方式生成的图像

```{r}
plot1 <- ggplot(data = mtcars, aes(x = wt, y = mpg, group = am, color = am)) +
    geom_point(size = 3)

plot1
``` 

导致 HTML 像
<img src = "data:image/png..." width = 1000/>

我希望能够自动将唯一标识符添加到每个图像,以便每次这样的调用都会产生类似的结果
<img src = "data:image/png..." id = "plot1" width = 1000/>

我可能可以用 JS 写这个,但我想知道是否有办法通过一些 RMarkdown 选项来做到这一点。

最佳答案

您可以像这样创建一个 block 选项 Hook :

knitr::opts_hooks$set(out.extra = function(options) {
  options$out.extra <- paste0(ifelse(!is.logical(options$out.extra), options$out.extra, "")," id='", options$label, "'")
  options
})

现在,如果 out.extraT或不合逻辑,将添加一个等于 block 标签的 id。如果它不是逻辑的而是字符类型,它的值将被插入到 id 属性之前。考虑下面的例子,我们在图中添加了一个边框。 id也设置好了!

完整示例:
---
title: "Out.Extra"
author: "Martin Schmelzer"
date: "10/9/2017"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)

knitr::opts_hooks$set(out.extra = function(options) {
  options$out.extra <- paste0(ifelse(!is.logical(options$out.extra), options$out.extra, "")," id='", options$label, "'")
  options
})
```

## Slide with Plot

```{r pressure, out.extra = 'style="border: red 3px solid;"'}
plot(pressure)
```

enter image description here

或者,查看包 kfigr .

关于r - 有没有办法自动为 R Markdown 中的图像添加标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648123/

相关文章:

r - 使用 Word 输出在 R Markdown 文档中循环 Flextables

r - 无法解决 .Rmd 文件 <Anonymous> 中的错误... withCallingHandlers -> withVisible -> eval -> eval ->

r - 在 PDF 中绘制符号失败

r - 如何从嵌套列表中的列表绑定(bind)数据表?

r - knitr:有条件地评估正常 block

r-markdown - 错误 : Failed to build the bibliography via biber {vitae}

r - 有没有办法为pdf制作没有线条/边框的kable?

r - 使用 R 合并 Loop 中的表

r - 在 R 中以特殊方式将列更改为新数据框

r - 编织者的自旋(): cannot embed inline R expression in a heading