ggvis vs ggplot2 + brillant; lequel choisir pour la visualisation interactive?

10

Il y a une question similaire ici dans CrossValidated, et j'ai lu les réponses. Ma question est un peu différente. Je ne veux pas simplement visualiser mes données, et en effet ce que je veux visualiser n'est pas facile à visualiser avec l'un ou l'autre des packages.

J'ai deux ensembles de points ( coordonnées ) sur mon tracé. Je veux ajouter des bords et le rendre similaire à un graphique. Si j'ai n points, alors en fonction de la nature de mon problème, je dois ajouter ( n / 2 ) 2 bords à l'intrigue.X,yn(n/2)2

Ensuite, je veux ajouter des fonctionnalités interactives à mon intrigue. Par exemple, en cliquant sur un point (sommet), tous les autres sommets qui ne sont pas connectés à ce sommet cliqué doivent disparaître pour avoir un tracé plus lucide et focalisé.

J'ai essayé de trouver un package de visualisation de réseau adapté à mon projet, mais il semble que tous utilisent les données sur la connexion des bords ou des nœuds et fournissent un réseau basé sur un algorithme de mise en page spécifique. Mes données sont différentes. J'ai les coordonnées des nœuds et je veux établir des arêtes entre certains d'entre eux. Dans mes données, les nœuds ont leurs propres emplacements fixes et ne doivent pas être déplacés.

Enfin, j'ai réduit les packages à ggviset ggplot2. ggvisest nouveau et frais en plus d'avoir une conception intentionnelle pour générer des tracés interactifs. Mais j'ai découvert que cela ggplot2+Shinypeut aussi produire des graphiques interactifs. (Est-ce exact?) En outre, je me suis dit que ggplot2les capacités sont plus variées et plus mûres que ggvis: par exemple, ggplot2a une fonction de zoom alors ggvisqu'elle ne l'a pas. Plus important encore, comme cela ggvisgrandit et change, je ne veux pas investir beaucoup de temps sur un travail qui devient techniquement obsolète ou buggé dans un an ou deux. Je pensais que c'est le cas si je code en fonction de ggvis.

Maintenant, pouvez-vous évaluer mon choix ( ggplot2+shiny) et me conseiller sur la possibilité de faire ce que je veux en faire?

Comme je ne connaissais aucun des packages mentionnés, j'ai commencé à apprendre ggplot2du livre de Wickham et je l'adore! Mais j'ai peur de passer quelques semaines et de découvrir que ce paquet étonnant ne peut pas faire ce que je veux faire même avec l'aide de Shiny.

PS: Je veux mettre le code final sur github pour que les utilisateurs probables puissent le télécharger et l'exécuter. Par conséquent, je n'ai pas besoin de faire une application web, il n'y a pas besoin de site web ni de mise en ligne de la carte interactive. J'ai juste besoin d'avoir un tracé interactif qui peut être exécuté depuis l'intérieur de Rstudio.

Shahin
la source
Bienvenue sur le site! Avez-vous essayé igraphou D3?
Dawny33
Merci! J'ai examiné ce que l'igraphe peut faire pour moi et je ne l'ai pas trouvé en ligne avec les données dont je dispose. Pour autant que j'ai compris, igraph visualise un réseau basé sur les données des sommets connectés (ou des données similaires sur les bords). Sur la base de certains algorithmes et priorités, igraph localise les sommets du tracé compatibles avec les données données. Mais je veux que les sommets soient exactement dans leurs coordonnées correspondantes que j'ai dans mon jeu de données. Je ne veux pas que le paquet choisisse sa disposition et son emplacement.
Shahin
Pourquoi pas d3js.org ? Il semble que vous ayez des exigences très particulières. D3, il est extrêmement facile de travailler avec SVG.
Ricardo Cruz
Avez-vous essayé le gephi?
MM
Pourriez-vous fournir un lien vers la question CrossVal.
Jim

Réponses:

4

Eh bien, plusieurs mois se sont écoulés depuis cette demande d'aide. J'écris cette réponse à ma propre demande afin de partager mon expérience. J'ai appris ggplot2et puis ggvisaussi bien Shiny. Shinypeut fonctionner avec les deux, mais j'ai trouvé ggvisplus structuré et lucide par rapport à ggplot2. Quelque chose qui est prévisible car le premier est développé sur la base de l'expérience de développement du second. De plus, ggvissemble beaucoup plus rapide que ggplot2dans la génération rapide de graphiques / graphiques, il semble beaucoup plus approprié pour 'Shiny' et pour créer une applet. Cependant, le point négatif est le manque de nombreuses fonctionnalités ggviscar le package est en cours de développement et n'est pas encore arrivé à maturité.

Et merci beaucoup aux commentaires ici. J'ai vérifié Gephi, ça n'aiderait pas. J'ai créé mon applet qui fonctionne très bien, mais j'ai finalement atteint ce point que je dois utiliser des outils plus puissants tels que d3js, comme on l'a déjà suggéré.

Shahin
la source
0

Le temps passe! Après 2 ans d'expérience de travail, je réponds maintenant à ma propre question avec une meilleure compréhension de Shiny, R et de la visualisation interactive.

Le Plotly est de loin la meilleure réponse. Il peut être facilement utilisé par la conversion ggplotly () des tracés statiques ggplot2, ou directement en apprenant la logique derrière les fonctions Plotly.

Ce dernier cas est suggéré pour les applications avec des parcelles diverses.

Shahin
la source