web-dev-qa-db-ja.com

knitrを使用したインタラクティブな3Dフィギュアを含む

knitrを使用すると、rglソースファイルからRmarkdown 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ソースファイル 、これは非常に基本的です。

    _```{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()
    ```
    _

    rglおよびknitrパッケージの異なるバージョンを使用して、2つの状況でRStudioの「knit」ボタンでこのファイルを編成しました(ただし、これは確かにrglパッケージが原因です) writeWebGL関数の出力で問題が発生します):

  • r-2.15.2の古いバージョン: ソースファイル および htmlレンダリング 。そして writeWebGLがrgl_0.93.928で生成したHTMLファイル 。私にとってはうまく機能します(3Dプロットには赤い点が4つしかありません...汚れた画面では簡単に確認できませんが、表示されます)。

  • r-2.15.3の最新バージョン: ソースファイル および htmlレンダリング 。そして writeWebGLがrgl_0.93.935で生成したHTMLファイル です。私にとってはうまくいきません:3Dプロットが表示されません。私はWindows 7を使用していますが、Chromeでは機能せず、Firefoxでも機能しません。

2013年6月28日を編集

24/06更新で発生した問題は、knitrとは関係ありません。私はこの投稿でそれを言い換えました: rgl 0.93.935 RパッケージでのWebGLレンダリング

41

I added 新しいフックhook_webgl() inknitr、これは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))
```
54
Yihui Xie