knitrでhtml,epubレポートにrglプロットを入れる

  • こちらにあるように(Rstudio+)knitr(+pandoc)で簡単にrglプロットを入れられる
  • まずパッケージは要る
```{r}
library(knitr)
library(rgl)
```
    • パッケージとRのバージョンに関するwarningsなどが出ると、次の{r setup}というのがうまく行かないようなので、ここでいったん、Rのコマンドに区切りを入れた。そのあたりに問題がなければつなげてもよい
  • 「rglつかって絵を入れるよ」という宣言。Rのコマンドの書き方で {r setup}としつつ、コマンドの中でknit_hooks()という関数を使う
  • その上で3Dプロット用の処理をする
    • ここで、rgl = hook_rglとすると、3次元プロットを2次元のpngにして埋め込む。その代りにrgl = hook_webgl とすると、hook_rgl {rgl}のヘルプ記事にもある通り

fixed vector graphics (hook_rgl with format "eps", "pdf" or "postscript"), or interactive WebGL graphics (hook_webgl)な埋め込みになる

```{r setup}
knit_hooks$set(rgl = hook_rgl)
p <- seq(from=0,to=1,by=0.01)
N <- 20
k <- 0:N
pk <- expand.grid(p,k)
pr <- dbinom(pk[,2],N,pk[,1])
```
  • 描くのは別途、```で書くのが決まりのよう
```{r, rgl=TRUE}
plot3d(pk[,1],pk[,2],pr,xlab="Success rate",ylab="No.successes",zlab="Probability/Likelihood")
```
  • グリグリ動かすには
```{r setup, include=FALSE}
library(knitr)
library(rgl)
knit_hooks$set(webgl = hook_webgl)
```
```{r,webgl=TRUE}
X <- matrix(rnorm(300),ncol=3)
plot3d(X)