html - 包括带有 knitr 的交互式 3D 人偶

标签 html r knitr rgl r-markdown

使用 knitr 可以从 Rmarkdown 源文件中将 rgl 3D 图形嵌入到 html 文档中:

```{r setup}
library(rgl)
knit_hooks$set(rgl = hook_rgl)
x <- sort(rnorm(1000))
y <- rnorm(1000)
z <- rnorm(1000) + atan2(x,y)
```

```{r, rgl=TRUE}
plot3d(x, y, z, col=rainbow(1000))
```

但 3D 图形在 html 文档中是不可交互的。是否可以获得交互式 3D 图形? rgl 包的 writeWebGL() 函数创建了一个带有交互式 3D 图形的 html 文件,有没有办法将这个 html 代码直接包含在 Rmarkdown 中?否则如何手动包含此 html 代码?

2013 年 6 月 24 日更新

这是一个今天不起作用的例子(3D 图形没有出现在 Chrome 中):

  • Rmd source file ,这是非常基本的:

    ```{r setup}
    library(rgl)
    knit_hooks$set(webgl = hook_webgl)
    ```
    ```{r, webgl=TRUE}
    M <- rbind(
      c(0,0,0),
      c(-1,4,0),
      c(4,9,0),
      c(6,3,0)
      )
      points3d(M,col='red')
    ```
    ```{r}
    sessionInfo()
    ```
    

    我在两种情况下使用不同版本的 rglknitr 包(但这肯定是由于 rgl 包,因为 writeWebGL 函数的输出出现问题):

  • 带有 R-2.15.2 的旧版本:source filehtml rendering .和 html file generated by writeWebGL with rgl_0.93.928 .对我来说效果很好(3D 图中只有 4 个红点……在我肮脏的屏幕上不容易看到,但我看到了)。

  • R-2.15.3 的最新版本:source filehtml rendering .和 html file generated by writeWebGL with rgl_0.93.935 .对我来说它不起作用:3D 图不可见。我使用 Windows 7,它不适用于 Chrome,也不适用于 Firefox。

编辑 28/06/2013

24/06 更新提出的问题与knitr无关。我在这篇文章中改写了它:WebGL rendering with rgl 0.93.935 R package

最佳答案

added knitr 中的新钩子(Hook) hook_webgl(),后来被合并到 rgl 中。这是一个例子:

```{r setup}
library(knitr)
library(rgl)
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))
```

关于html - 包括带有 knitr 的交互式 3D 人偶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14879210/

相关文章:

Java selenium 抓取元素的整个 html 内容

javascript - 获取光标插入符所在的选定内容可编辑元素的子元素的 ID

R:如何将数据框拆分为训练集、验证集和测试集?

rmarkdown 从文件中读取代码并高亮显示

r - 使用 rmarkdown 在 pdf 中插入 GIF

html - XML 中的 SUP/SUB 标签

javascript - 如何在 JavaScript 中获取 DOM 元素中直接包含的文本?

css - 适用于 Knitr-markdown 输出的 CSS 样式资源?

r - 计算最近要素的方位角

r - Sweave 诉 Knitr 诉 Rmarkdown : code chunk headers