由于我正在尝试实现其他一些 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.extra
是 T
或不合逻辑,将添加一个等于 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)
```
或者,查看包 kfigr .
关于r - 有没有办法自动为 R Markdown 中的图像添加标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648123/