代码之家  ›  专栏  ›  技术社区  ›  JRR

如何在Rmarkdown包vignette中嵌入rgl快照

  •  1
  • JRR  · 技术社区  · 7 年前

    ---
    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()
    

    1 回复  |  直到 7 年前
        1
  •  4
  •   user2554330    7 年前

    你需要用旧的 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))
    ```