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コードを手動で含める方法は?
以下は、今日機能しない例です(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でも機能しません。
24/06更新で発生した問題は、knitr
とは関係ありません。私はこの投稿でそれを言い換えました: rgl 0.93.935 RパッケージでのWebGLレンダリング
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))
```