使用knitr和rgl的3d图形时出错

时间:2015-04-09 14:24:52

标签: r webgl knitr rgl

我正在尝试使用knitr和rgl在我的htlm输出中包含一个交互式绘图。我过去已经取得了成功,但我现在无法从标准示例中生成图形。当我运行下面的代码时,我的输出包含错误"您的浏览器不支持WebGL。见http://get.webgl.org"。当我检查它是否支持时,我的浏览器可以与其他交互式图形一起使用。

任何帮助将不胜感激,我可能会犯一个简单的错误。

---
output:
  html_document:
    keep_md: yes
---
```
```{r setup, results='asis'}
library(rgl)
library(knitr)
knit_hooks$set(webgl = hook_webgl)
```

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

1 个答案:

答案 0 :(得分:2)

您不会说出您正在使用的rgl版本。最近有很多变化,所以R-forge的版本与knitr不兼容(至少我最后一次看)。我无法记住CRAN上的版本是否兼容。

如果您使用的是R-forge版本,我建议暂时使用rgl包中包含的knitr hook(在https://r-forge.r-project.org/scm/viewvc.php/pkg/rgl/vignettes/setup.R?view=markup&root=rgl中)。

一旦事情安定下来,我将把必要的修改转移到义晖。

编辑添加:knitr钩子函数现在从rgl导出(如rgl :: hook_webgl)。这是在CRAN上。仍然只在R-forge上,如果首先加载knitr,钩子将自动安装。

进一步编辑:不要使用hook_webgl,请使用rglwidget()函数。这已经在rgl的CRAN版本中存在了一段时间。