如何在Rmarkdown程序包插图中嵌入Rgl快照

时间:2018-12-22 00:33:45

标签: r r-markdown r-package rgl vignette

我为包裹创建了R小插图。这个小插图在webGL中嵌入了一个互动的rgl图形。

---
title: "title"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{title}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```r
rgl::plot3d(runif(10), runif(10), runif(10))
```

```{r, echo = FALSE}
rgl::plot3d(runif(10), runif(10), runif(10))
rgl::rglwidget()
```

它工作得很好,但是满足我的需求而被淘汰。一个简单的非交互式图片就足够了。 webGL显示的问题在于它会创建一个大文件(> 1 Mb)。因此,我在CRAN上有关于目录大小的注释。与其争论这个注意,我不想使用常规图片来减小html输出的大小。

rgl::plot3d(runif(10), runif(10), runif(10))
rgl::rgl.snapshot()

这显然行不通。

1 个答案:

答案 0 :(得分:3)

您需要使用hook_rgl文档中所述的旧knitr方法,并在rgl中进行了更新。例如,这些块将插入一个PNG图形:

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

```{r rgl=TRUE, dev='png'}
rgl::plot3d(runif(10), runif(10), runif(10))
```