html - rmarkdown - r markdown: the definitive guide
incluyendo una figura 3D interactiva con knitr (1)
hook_webgl()
un nuevo gancho hook_webgl()
en knitr , que se incorporó a rgl más tarde. Aquí hay un ejemplo:
```{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))
```
Vea un ejemplo aquí (y la fuente Rmd ).
Usando knitr
es posible incrustar un rgl
gráficos 3D en un documento html desde un archivo fuente Rmarkdown
:
```{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))
```
Pero el gráfico 3D no es interactivo en el documento html. ¿Es posible obtener un gráfico 3D interactivo? La función writeWebGL()
del paquete rgl
crea un archivo html con un gráfico 3D interactivo, ¿hay alguna manera de incluir directamente este código html con Rmarkdown? De lo contrario, ¿cómo incluir este código html manualmente?
Actualización 24/06/2013
Aquí hay un ejemplo que no funciona hoy (el gráfico 3D no aparece en Chrome):
el archivo fuente Rmd , que es muy básico:
```{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() ```
He tejido este archivo con el botón "knit" de RStudio en dos situaciones usando diferentes versiones de paquetes
rgl
yknitr
(pero esto seguramente se debe al paquetergl
porque el problema ocurre con la salida de la funciónwriteWebGL
):versiones antiguas con R-2.15.2: archivo fuente y renderizado html . Y el archivo html generado por
writeWebGL
con rgl_0.93.928 . Para mí funciona bien (solo hay 4 puntos rojos en la trama 3D ... no es fácil de ver en mi pantalla sucia, pero los veo).últimas versiones con R-2.15.3: archivo fuente y renderizado html . Y el archivo html generado por
writeWebGL
con rgl_0.93.935 . Para mí, no funciona: el gráfico 3D no está visible. Uso Windows 7 y no funciona con Chrome, ni con Firefox.
Editar 28/06/2013
El problema planteado por la actualización 24/06 no tiene nada que ver con knitr
. Lo reformulé en esta publicación: WebGL rendering con rgl 0.93.935 R package