2

我为我的包裹创建了一个 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()

这显然是行不通的。

4

1 回答 1

4

您需要使用文档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))
```
于 2018-12-22T02:21:58.373 回答