ggvis vs.ggplot2 + Shiny; ¿Cuál elegir para la visualización interactiva?

10

Hay una pregunta similar aquí en CrossValidated, y he leído las respuestas. Mi pregunta es un poco diferente. No quiero simplemente visualizar mis datos, y de hecho lo que quiero visualizar no es fácil de visualizar con ninguno de los paquetes.

Tengo dos conjuntos de puntos ( coordenadas ) en mi parcela. Quiero agregar bordes y hacerlo similar a un gráfico. Si tengo n puntos, entonces, según la naturaleza de mi problema, necesito agregar ( n / 2 ) 2 aristas a la gráfica.X,ynorte(norte/ /2)2

Entonces quiero agregar algunas características interactivas a mi trama. Por ejemplo, al hacer clic en un punto (vértice), todos los demás vértices que no están conectados a este vértice cliqueado deben desaparecer para tener una gráfica más lúcida y enfocada.

Traté de encontrar un paquete de visualización de red adecuado para mi proyecto, pero parece que todos usan los datos sobre la conexión de bordes o nodos y proporcionan una red basada en algún algoritmo de diseño específico. Mis datos son diferentes. Tengo las coordenadas de los nodos y quiero establecer algunos bordes entre algunos de ellos. En mis datos, los nodos tienen sus propias ubicaciones fijas y no deben moverse.

Finalmente, reduje los paquetes a ggvisy ggplot2. ggvises nuevo y fresco además de tener un diseño intencional para generar tramas interactivas. Pero descubrí que ggplot2+Shinytambién puede producir tramas interactivas. (¿Es correcto?) Además, supuse que ggplot2las capacidades son más variadas y maduras que ggvis: por ejemplo, ggplot2tiene una función de zoom mientras ggvisque no la tiene. Más importante, a medida ggvisque crece y cambia, no quiero invertir mucho tiempo en un trabajo que se vuelve técnicamente obsoleto o con errores en un año más o menos. Pensé que este es el caso si codifico según ggvis.

Ahora, ¿puede evaluar mi elección ( ggplot2+shiny) y aconsejarme sobre la posibilidad de hacer lo que quiero hacer con ella?

Como no conocía ninguno de los paquetes mencionados, empecé a aprender ggplot2del libro de Wickham y ¡me encanta! Pero tengo miedo de pasar unas semanas y descubrir que este increíble paquete no puede hacer lo que quiero hacer incluso con la ayuda de Shiny.

PD: Quiero poner el código final en github para que los usuarios probables puedan descargarlo y ejecutarlo. Por lo tanto, no necesito hacer una aplicación web, no hay necesidad de ningún sitio web o poner el mapa interactivo en línea. Solo necesito tener una trama interactiva que se pueda ejecutar desde el interior de Rstudio.

Shahin
fuente
Bienvenido al sitio! ¿Intentaste igrapho D3?
Dawny33
¡Gracias! Revisé lo que igraph puede hacer por mí y no lo encontré en línea con los datos que tengo. Según tengo entendido, igraph visualiza una red basada en los datos de vértices conectados (o datos similares sobre bordes). Basado en algunos algoritmos y prioridades, igraph localiza los vértices en el gráfico compatibles con los datos dados. Pero quiero que los vértices estén exactamente en sus coordenadas correspondientes que tengo en mi conjunto de datos. No quiero que el paquete elija su diseño y ubicación.
Shahin
¿Por qué no d3js.org ? Parece que tienes requisitos muy particulares. D3 hace que sea extremadamente fácil trabajar con SVG.
Ricardo Cruz
¿Has probado gephi?
MM
¿Podría proporcionar un enlace a la pregunta CrossVal?
Jim

Respuestas:

4

Bueno, han pasado muchos meses desde esta solicitud de ayuda. Escribo esta respuesta a mi propia solicitud para compartir mi experiencia. Aprendí ggplot2y luego ggvistan bien como Shiny. Shinypuede trabajar con ambos, pero encontré ggvismás estructurado y lúcido en comparación ggplot2. Algo que es de esperar ya que el primero se está desarrollando en base a la experiencia de desarrollo del segundo. Además, ggvisparece mucho más rápido que ggplot2en la generación rápida de gráficos / tablas, parece mucho más adecuado para 'Shiny' y para crear un applet. Sin embargo, el punto negativo es la falta de muchas características ggvisya que el paquete está en desarrollo y aún no ha madurado.

Y muchas gracias a los comentarios aquí. Lo he comprobado Gephi, no ayudaría. Creé mi applet que funciona muy bien, sin embargo, finalmente llegué a este punto que necesito usar herramientas más potentes como d3js, como ya se ha sugerido.

Shahin
fuente
0

¡El tiempo vuela! Después de 2 años de experiencia laboral, ahora respondo a mi propia pregunta con una mejor comprensión de Shiny, R y la visualización interactiva.

The Plotly es, con mucho, la mejor respuesta. Se puede usar fácilmente mediante la conversión de ggplotly () de las parcelas estáticas ggplot2, o directamente aprendiendo la lógica detrás de las funciones de Plotly.

El último caso se sugiere para aplicaciones con diversas parcelas.

Shahin
fuente