knit2html rglplot没有显示

时间:2015-03-10 06:21:17

标签: r knitr rgl

我使用knitr的knit2html函数生成带有嵌入式rgl图的html(交互式) 使用命令

>knit2html("myfile.rmd")

我的R降价:

```{r setup}
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))
```

sessionInfo()提供rgl_0.95.1227knitr_1.9.4

我无法在生成的html中看到3D图。 检查了html javascript控制台,并说没有声明rglclass。

它未包含在html文件中。两者都没有生成CanvasMatrix.js。 我错过了什么?

我看到knitr的hook_webgl包裹着rgl&#39; s writeWebGL

writeWebGL(dir = dirname(name), filename = name, template = NULL, 
        prefix = prefix, snapshot = FALSE, commonParts = commonParts)

似乎commonParts争论被设置为假?

来自hook_webgl

函数knitr

function (before, options, envir) 
{
if (before || rgl::rgl.cur() == 0) 
    return()
name = tempfile("rgl", ".", ".html")
on.exit(unlink(name))
dpi = options$dpi/options$fig.retina
rgl::par3d(windowRect = 100 + dpi * c(0, 0, options$fig.width, 
    options$fig.height))
Sys.sleep(0.05)
prefix = gsub("[^[:alnum:]]", "_", options$label)
prefix = sub("^([^[:alpha:]])", "_\\1", prefix)
rgl::writeWebGL(dir = dirname(name), filename = name, template = NULL, 
    prefix = prefix, snapshot = FALSE, commonParts = commonParts)
commonParts <<- FALSE
res = readLines(name)
res = res[!grepl("^\\s*$", res)]
paste(gsub("^\\s+", "", res), collapse = "\n")
}

0 个答案:

没有答案