varias superponer lineas histograma hacer graficos grafico graficas dispersion como r browser 3d rotation rgl
Stomach3D como Zip

lineas - superponer graficas en r



R: ¿usar rgl para generar gráficos rotativos en 3D que se pueden ver en un navegador web? (6)

En el mundo del paquete de estadísticas R, rgl me permite generar gráficos en 3D que puedo rotar con mi mouse. ¿Hay alguna manera de exportar estos gráficos en un formato portátil, cargarlos en un navegador web u otra herramienta de terceros y rotarlos allí? Estoy especialmente interesado en la solución de navegador web ya que esto me permitirá compartir las tramas en una wiki interna.

Si rgl no permite esto, ¿hay otras bibliotecas o estrategias que me permitan lograr esto?


Hace un par de millones de años (OK, 2005) escribí el código R para volcar primitivas gráficas en formato gráfico de Mathematica (!!), que luego se podía incrustar y ver con el plug-in LiveGraphics3D Java. No he intentado usarlo en 6 años, pero podría tratar de resucitarlo si hubiera interés.

PD aquí están los resultados de la help(package="LG3d") :

get.live.jar Download live.jar Java archive LG.display Display Live3D graphics in a browser LG.html.head header and footer files for LiveGraphics HTML files LGmobius Draw a 3D mobius strip LG.open open and close LiveGraphics3D files LG.plot.profiles Plot likelihood surface + profiles using Live3D LGtorus Draw a torus in LG graphics system LGtoruswrap Utility functions for LGtorus mma.brace Low-level graphics primitives for LiveGraphics3D mma.edge change edge style mma.persp Output a perspective plot to a LiveGraphics3D file mma.point Medium-level graphics primitives for LiveGraphics3D mma.polygon draw a Mma/LG3d polygon


La sugerencia de Pete vale la recompensa. El wrl-detour no es realmente necesario, es bastante fácil generar el archivo xml con sprintf y amigos.

El problema es la velocidad: como comparación, tuve una resonancia magnética de estómago con código de color con 17000 esferas (para vóxeles), que fue bastante sensible en mi pantalla con rgl.

Cuando lo porté a x3dom, el sistema se congeló. Un conjunto reducido con 450 esferas funciona:

http://www.menne-biomed.de/uni/x3dsample.html

El soporte del navegador es inconsistente. Algunas de las muestras en la página de ejemplo x3dom funcionan mejor con (créalo o no) Internet Explorer + Flash 11. Compruebe el ejemplo de la luz dinámica.

Mi ejemplo funciona, pero parece plano en Firefox 7.0.1. Lo mejor es siempre Chrome.

Agregado después: Aquí hay otro ejemplo:

Stomach3D como Zip

El archivo x3d que contiene puede mostrarse incluso con gráficos incorporados utilizando Instant Reality Viewer. El archivo html generado a partir de él a veces se carga, pero no se puede girar.


Para interactuar dinámicamente con un gráfico en una página web, necesitará algún tipo de programa Java o Flash para realizar la interacción, y luego tendrá un código / datos de escritura R que puedan ser comprendidos por ese programa. Esta pregunta y sus respuestas parecen un buen lugar para comenzar.


Para una mayor flexibilidad, he tenido mucha suerte al usar Processing . Originalmente fue escrito en java, pero ahora ha sido portado de forma estable a javascript , y más experimentalmente a python e incluso algunos otros.

http://processingjs.org
http://processing.org

Utiliza el elemento HTML5 <canvas> para procesar su código de procesamiento sobre la marcha. Puede vincular su código de visualización en otro archivo o escribirlo directamente en su archivo html (¡me recuerda a Sweave!).

Además, hay un gran recurso de ejemplos de código abierto en línea. Por ejemplo:

http://openprocessing.org

Por último, he aquí una esencia que reuní para demostrar la configuración básica. Simplemente descargue el archivo processing.js en la misma carpeta que la esencia y abra su navegador.

https://gist.github.com/1295842

Se verá así:


Para una solución simple prueba esto ...

x <- sort(rnorm(1000)) y <- rnorm(1000) z <- rnorm(1000) + atan2(x,y) plot3d(x,y,z, col=rainbow(1000), type = "s", size=1, xlab = "x", ylab = "y", zlab = "z", box=T) # This writes a copy into temporary directory ''webGL'', and then displays it browseURL(paste("file://", writeWebGL(dir=file.path("C:/Your-Directory-Here/", "webGL"), width=700), sep=""))

abra el archivo index.html en Firefox o un navegador similar que admita HTML5 y WebGL


Puedes probar el paquete vrmlgen . Producirá archivos 3D VRML que se pueden mostrar con un complemento de navegador; puede encontrar un complemento en el plugin VRML y el detector de navegador .

Una vez que haya instalado un complemento, intente esto:

require(vrmlgen) example(bar3d)

NB: el código de ejemplo no se abrió automáticamente en un navegador para mí (RStudio, Win7, Chrome) porque la ruta se truncó. Es posible que necesite usar:

require(stringr) browseURL(str_replace_all(file.path(outdir, ''barplot.html''), fixed(''//'), ''/''))

Si no desea instalar un complemento VRML, podría usar X3DOM en su lugar. Necesitarás un converter , pero tus usuarios deberían poder verlos solo con un navegador (moderno). Es posible que deba modificar el siguiente código para obtener las rutas correctas:

setwd(outdir) aopt <- ''C:/PROGRA~1/INSTAN~1/bin/aopt'' # Path to conversion program vrml <- ''barplot.wrl'' x3dom <- ''barx.html'' command <- paste(aopt, ''-i'', vrml, ''-N'', x3dom) system(command) # LOG Avalon Init: 47/616, V2.0.0 build: R-21023 Jan 12 2011 # LOG Avalon Read url # LOG Avalon Read time: 0.074000 # ============================================ # Call: writeHTML with 1 param # Write raw-data to barx.html as text/html # WARNING Avalon Run NodeNameSpace "scene" destructor and _nodeCount == 3 # WARNING Avalon Try to remove nodes from parents # WARNING Avalon PopupText without component, cannot unregister # WARNING Avalon Avalon::exitSystem() call and node/obj left: 0/3331 browseURL(file.path(outdir, ''barx.html'')) setwd(curdir)