En el mundo de la R paquete de estadísticas, rgl me permite generar gráficos 3d que puedo girar con el ratón. ¿Hay alguna manera de exportar estas parcelas en un formato portátil, los carga en un navegador web u otra herramienta de terceros y girar allí? Estoy especialmente interesado en el navegador web, ya que esto me permitirá compartir las parcelas en una wiki interna.

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

  • +1 Esta es una pregunta interesante. Todavía no he jugado con RStudio Servidor, pero ahora tengo la curiosidad de si es compatible con esta. Tiene nadie más, dado que el programa de Servidor en un remolino?
  • El writeWebGL() función de la rgl paquete de las exportaciones en html. No ?
InformationsquelleAutor Setjmp | 2011-10-05

6 Comentarios

  1. 15

    Usted podría tratar de la vrmlgen paquete. Se va a producir en 3d VRML archivos que se pueden mostrar con un plugin para el navegador, se puede encontrar un plugin en VRML Plugin del Navegador y Detector de.

    Una vez instalado el plugin, prueba esto:

    require(vrmlgen)
    example(bar3d)

    NOTA: el código de ejemplo no se abre automáticamente en un navegador para mí (RStudio, Win7, Chrome) porque el camino que tienes alterados. Usted podría necesitar el uso de:

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

    Si usted no desea instalar un VRML plugin, usted podría utilizar X3DOM lugar. Usted necesitará un convertidor de, pero los usuarios deben ser capaces de ver con sólo un (moderna) del navegador. Usted podría tener que modificar el código siguiente para obtener las rutas de derecho:

    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)
    • Voy a probar esto, pero yo preferiría un Javascript (o si es necesario flash) solución que funcionará con la mayoría de los navegadores …
    • gracias, voy a revisar esto.
    • Esta respuesta obras. Sin embargo, para aquellos que siguen a lo largo de la biblioteca dependecies hecho todo un reto (no quiero dar soporte a los clientes que había que configurar todo esto). Tuve éxito en macOS. Ubuntu 10.04 había una obsoleta de la biblioteca. Me siento optimista de que puedo llegar a trabajar en alguna tarde de la serie de Ubuntu con más esfuerzo, pero soy el funcionamiento de vapor por el momento.
    • no he tenido la oportunidad de comprobar esto correctamente, pero parece que es la mejor respuesta del montón, y @Dieter Menne la respuesta admite también.
    • Sí, pero se ve como el Procesamiento es realmente vale la pena el intento. Gracias Juan, tomar un Marte en lugar de una Recompensa.
  2. 13

    Para una solución simple a probar 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=""))

    abrir el index.html archivo en Firefox o similar navegador que soporte HTML5 y WebGL

    • Para hacer esto, ejecute directamente, uno podría sustituir writeWebGL(dir=tempdir(), width=700); browseURL(file.path(tempdir(), 'index.html')) para la parte inferior de la línea proporcionada por @marca.
  3. 2

    Pete sugerencia es que vale la pena la recompensa. La wrl-desvío no es realmente necesario, es más fácil generar el xml archivo con sprintf y amigos.

    El problema es la velocidad: Como una comparación, yo tenía un código de color en el estómago de resonancia magnética con 17000 esferas (para los voxels), que era muy sensible en mi pantalla con rgl.

    Cuando me portado a x3dom, el sistema se congeló. Un conjunto reducido con 450 esferas obras:

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

    Soporte de navegador es incompatible. Algunas de las muestras en el x3dom ejemplo de la página de trabajar mejor con (créanlo o no) de Internet Explorer + Flash 11. Compruebe la luz dinámica ejemplo.

    Mi ejemplo funciona, pero se ve plana en Firefox 7.0.1. Lo mejor es Chrome.

    Añadió más tarde:
    Aquí está otro ejemplo:

    Stomach3D como Zip

    El archivo x3d contenida en ella puede mostrarse incluso con los gráficos en placa utilizando el Instante en que la Realidad del Espectador. El archivo html generado a partir de este se carga a veces, pero no se puede girar.

    • fuera de tema, pero en general si se hace una gráfica de los voxels como los voxels, en lugar de esferas, que va a ser mucho más rápido. 🙂
    • Correcto; lo mismo es cierto si usted utilizar los cuadros en lugar de esferas. He utilizado el último, porque cuando yo la probé por primera vez con las esferas y reflexiones especulares en rgl, el jefe le gustó mucho, así que lo guardamos. Especificaciones de vender.
    • He encontrado un par de referencia para los voxels <web3d.org/x3d/specifications/…>, pero ¿cómo puedo traducir esto a x3d/x3dom?
    • Estos enlaces ya no están activos.
    • Lástima, yo no hice una copia de seguridad de estos archivos después de que tuvo que mudarse a otro servidor. Usted puede tener una mirada en menne-biomed.de/uni/3d y menne-biomed.de/swallow/jswallow3d.html en su lugar.
  4. 1

    Que interactúan dinámicamente con un gráfico en una página web que va a necesitar algún tipo de java o flash de programa para hacer la interacción, entonces I de escritura de código y datos que pueden ser entendidas por ese programa. Esta pregunta y sus respuestas parecen un buen lugar para empezar.

  5. 1

    Para una máxima flexibilidad, he tenido la gran suerte de usar de Procesamiento de. Originalmente fue escrito en java, pero ahora se ha portado de forma estable a javascript, y más experimentalmente para python, e incluso algunos otros.

    http://processingjs.org

    http://processing.org

    Utiliza el HTML5 <canvas> elemento a procesar su código de Procesamiento on-the-fly. Usted puede ya sea un enlace para su visualización código en otro archivo, o escribirlo directamente en tu archivo html (me recuerda a Sweave!).

    También, hay una enorme fuente de recursos de fuente abierta ejemplos en línea. Por ejemplo:

    http://openprocessing.org

    Por último, aquí está una idea que puse juntos para demostrar la configuración básica. Sólo tienes que descargar el processing.js archivo en la misma carpeta que la esencia y abrir el navegador.

    https://gist.github.com/1295842

    Que va a tener este aspecto:

    R: el uso de rgl para generar 3d giratorio parcelas que se pueden ver en un navegador web?

  6. 0

    Un par de millones de años (OK, 2005) escribí código R para el volcado de gráficos primitivos en Mathematica (!!) formato de gráficos, el cual puede ser embebido y se ve con el LiveGraphics3D plug-in de Java. No he probado a usarlo en 6 años, pero yo podría intentar resucitar si hay interés.

    PS aquí están los resultados de 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

Dejar respuesta

Please enter your comment!
Please enter your name here