如何在Rmarkdown包vignette中嵌入rgl快照
我为我的包创建了一个R小插曲。此小插曲嵌入了一个带有webGL的交互式rgl图形如何在Rmarkdown包vignette中嵌入rgl快照,r,r-markdown,r-package,rgl,vignette,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_
---
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显示的问题在于它会创建一个大文件(>1MB)。因此,我在CRAN上有一个关于目录大小的注释。我不想争论这个问题,而是想使用一个普通的图片来减少html输出的大小
rgl::plot3d(runif(10), runif(10), runif(10))
rgl::rgl.snapshot()
这显然不起作用。您需要使用
knitr
文档中描述的旧hook_rgl
方法,并在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))
```