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.
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 ggvis
y ggplot2
. ggvis
es nuevo y fresco además de tener un diseño intencional para generar tramas interactivas. Pero descubrí que ggplot2+Shiny
también puede producir tramas interactivas. (¿Es correcto?) Además, supuse que ggplot2
las capacidades son más variadas y maduras que ggvis
: por ejemplo, ggplot2
tiene una función de zoom mientras ggvis
que no la tiene. Más importante, a medida ggvis
que 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 ggplot2
del 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.
fuente
igraph
o D3?Respuestas:
Bueno, han pasado muchos meses desde esta solicitud de ayuda. Escribo esta respuesta a mi propia solicitud para compartir mi experiencia. Aprendí
ggplot2
y luegoggvis
tan bien comoShiny
.Shiny
puede trabajar con ambos, pero encontréggvis
más estructurado y lúcido en comparaciónggplot2
. Algo que es de esperar ya que el primero se está desarrollando en base a la experiencia de desarrollo del segundo. Además,ggvis
parece mucho más rápido queggplot2
en 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ísticasggvis
ya 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 comod3js
, como ya se ha sugerido.fuente
¡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.
fuente