【问题标题】:R: knitr + RGL: Issues with visreg's visreg2d functionR: knitr + RGL: visreg 的 visreg2d 函数的问题
【发布时间】:2023-03-19 18:51:01
【问题描述】:

我正在尝试使用 R 中 visreg 包的 visreg2d 函数创建 RGL 图,以包含到通过在 RMarkdown 文件上运行 knitr 创建的 HTML 文档中。

我能够从 rgl 包函数 plot3dspheres3d 获取 RGL 图,但不能从我的 HTML 文档中对 visreg2d(..., plot.type = "rgl") 的调用中获取。

这是一个示例 RMarkdown 文件,由示例 here 构建而成:

---
output:
  html_document:
    self_contained: no
---
```{r setup, results='asis'}
library(knitr)
library(rsm)
library(visreg)

knit_hooks$set(webgl = hook_webgl)
cat('<script type="text/javascript">', readLines(system.file('WebGL', 'CanvasMatrix.js', package = 'rgl')), '</script>', sep = '\n')
```

This works fine.

```{r testgl, webgl=TRUE}
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
plot3d(x, y, z, col=rainbow(1000))
```

This one also works.

```{r testgl2, webgl=TRUE}
open3d()
spheres3d(x, y, z, col=rainbow(1000))
```

```{r, webGL = TRUE}
library(rsm)
swiss2.lm <- lm(Fertility ~ Agriculture*Education, data = swiss)
open3d()
visreg2d(swiss2.lm, "Education", "Agriculture", plot.type = "rgl")
```

plot3dspheres3d 的调用有效,但对visreg2d 的调用无效。也就是说,即使在本地我可以看到 RGL 图,它也不会嵌入到我的 HTML 文档中。任何有关如何使其工作的建议将不胜感激。

【问题讨论】:

    标签: r knitr rgl


    【解决方案1】:

    这只是一个错字——您输入的是 webGL = TRUE 而不是 webgl=TRUE

    但是,我要补充一点,当我在我的机器上尝试这个时,我必须使用 nn 选项来降低 visreg 图的分辨率(否则我会遇到“堆栈空间溢出”错误)visreg2d(例如,nn=39)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      相关资源
      最近更新 更多