plot - 在 R Markdown/knitr 中缩略图一些图的简单方法是什么?

标签 plot rstudio thumbnails knitr r-markdown

我正在使用 R Markdown 和 knitr在 R Studio 中创建和更新一个简单的项目网站,让我的同事了解我正在构建的数据分析模型。页面上有一些图,(对于较小的图)到目前为止效果很好,他们可以在同一个地方看到代码和结果。

然而,一些图变得非常大(并且必须保持大以允许快速并排比较模型),并且不太适合页面。我为其中一些使用了单独上传的 pdf(页面上有链接)。如果有一种简单的方法生成 就更好了缩略图其中一些绘图,以便用户可以查看小绘图图像,单击它,然后详细检查更大的图像。但是,如果每个情节实例都需要大量手动脚本,我宁愿不浪费时间而只上传几个 pdf。一个类似的问题 here谈包,knitrbootsrap ,但我不想缩略图我所有的情节,只是选择几个。该包似乎使用 Magnific popup ,但自己将其集成到 Markdown 页面中似乎很麻烦(?)。我在 R Markdown 引用资料中没有找到任何内容 guide .当然,一种方法是生成两个绘图,一个很小的,显示出来,并将其链接到另一个单独上传的更大的绘图图像/pdf - 但需要一种更简单、更自动的方法。

因此,问题 - 是否有 更简单 如何在 R Markdown 中生成可点击的绘图缩略图?

最佳答案

所以,这就是我想出的。添加绘图 Hook ,以便在块中生成小图像之前生成全分辨率 pdf 图像:

allow_thumbnails <- function(x, options) {
  if (!is.null(options$thumb)) {
    filename <- sprintf("%s.full.pdf", strsplit(basename(x), "\\.")[[1]][1])
    absolute_path <- file.path(dirname(x), filename)

    # generate the full resolution pdf
    pdf(absolute_path, width = options$thumb$width, height = options$thumb$height)
      eval(parse(text = options$code))
    dev.off()

    # add an html link to the low resolution png
    options$fig.link = absolute_path
  }

  knitr:::hook_plot_md_base(x, options)
}

然后在 Rmd 文件中,我使用 thumb 定义全分辨率图像的大小。争论:
```{r init} 
    knit_hooks$set(plot = allow_thumbnails)
```

```{r my_large_plot, fig.width = 15, fig.height = 15, thumb = list(width = 45, height = 45)}
    my_large_plot()
```

这将生成一个带有可点击 png 的 html 文件,将您带到 pdf。

关于plot - 在 R Markdown/knitr 中缩略图一些图的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37834053/

相关文章:

r - 在命令行上运行 r 代码时出现包错误

r - 如何在一个 ggplot2 图中为两个 geom 图层添加图例?

r - Shiny/ggvis 对子集图数据的 react

MATLAB,填充两组数据之间的区域,一张图中的线条

r - 鼠标悬停在 plotly 和 Shiny

java - Xuggler/Java 视频缩略图

r - Quantmod Heikin-Ashi 绘图不可用

从 R Studio 运行一段时间后,R Shiny 应用程序自行关闭,但它仍在收听......这正常吗?

ios - 从 app 目录中的文件创建要加载到 tableview 中的图像缩略图

css - 使用另一个灯箱后缩略图之间的间距消失