ggvis vs. ggplot2 + Shiny; welches für die interaktive Visualisierung wählen?

10

Es gibt eine ähnliche Frage hier in CrossValidated, und ich habe die Antworten gelesen. Meine Frage ist etwas anders. Ich möchte nicht nur meine Daten visualisieren, und tatsächlich ist das, was ich visualisieren möchte, mit beiden Paketen nicht einfach zu visualisieren.

Ich habe zwei Punktmengen ( Koordinaten) auf meinem Plot. Ich möchte Kanten hinzufügen und es einem Diagramm ähnlich machen. Wenn ich n Punkte habe, muss ich basierend auf der Art meines Problems ( n / 2 ) 2 Kanten zum Diagramm hinzufügen .x,yn(n/2)2

Dann möchte ich meinem Plot einige interaktive Funktionen hinzufügen. Wenn Sie beispielsweise auf einen Punkt (Scheitelpunkt) klicken, müssen alle anderen Scheitelpunkte, die nicht mit diesem angeklickten Scheitelpunkt verbunden sind, verschwinden, um eine klarere und fokussiertere Darstellung zu erhalten.

Ich habe versucht, ein Netzwerkvisualisierungspaket zu finden, das für mein Projekt geeignet ist, aber anscheinend verwenden alle die Daten zur Verbindung von Kanten oder Knoten und stellen ein Netzwerk bereit, das auf einem bestimmten Layoutalgorithmus basiert. Meine Daten sind unterschiedlich. Ich habe die Koordinaten von Knoten und möchte einige Kanten zwischen einigen von ihnen herstellen. In meinen Daten haben die Knoten ihre eigenen festen Positionen und dürfen nicht verschoben werden.

Schließlich habe ich die Pakete auf ggvisund eingegrenzt ggplot2. ggvisist neu und frisch und verfügt über ein absichtliches Design zur Erstellung interaktiver Diagramme. Aber ich habe herausgefunden, dass ggplot2+Shinyauch interaktive Diagramme erstellt werden können. (Ist das richtig?) Außerdem habe ich festgestellt, dass ggplot2die Funktionen vielfältiger und ausgereifter sind als ggvis: Zum Beispiel ggplot2hat es eine Zoomfunktion, ggvisohne sie zu haben. Wichtiger noch, da ggvises wächst und sich verändert, möchte ich nicht viel Zeit in eine Arbeit investieren, die in etwa einem Jahr technisch veraltet oder fehlerhaft wird. Ich dachte, dass dies der Fall ist, wenn ich basierend auf codiere ggvis.

Könnten Sie jetzt bitte meine Wahl ( ggplot2+shiny) bewerten und mich über die Möglichkeit beraten, das zu tun, was ich damit machen möchte?

Da ich keines der genannten Pakete kannte, habe ich angefangen, ggplot2aus Wickhams Buch zu lernen, und ich liebe es! Aber ich habe Angst, ein paar Wochen zu verbringen und herauszufinden, dass dieses erstaunliche Paket nicht das tun kann, was ich will, selbst mit Hilfe von Shiny.

PS: Ich möchte den endgültigen Code auf github platzieren, damit wahrscheinliche Benutzer ihn herunterladen und ausführen können. Daher muss ich keine Webanwendung erstellen, es ist keine Website oder Online-Bereitstellung der interaktiven Karte erforderlich. Ich brauche nur eine interaktive Handlung, die von Rstudio aus ausgeführt werden kann.

Shahin
quelle
Willkommen auf der Seite! Hast du es versucht igraphoder D3?
Dawny33
Vielen Dank! Ich habe überprüft, was igraph für mich tun kann, und fand es nicht in Übereinstimmung mit den Daten, die ich habe. Soweit ich verstanden habe, visualisiert igraph ein Netzwerk basierend auf den Daten verbundener Eckpunkte (oder ähnlichen Daten über Kanten). Basierend auf einigen Algorithmen und Prioritäten lokalisiert igraph die Eckpunkte auf dem Plot, die mit den angegebenen Daten kompatibel sind. Ich möchte jedoch, dass die Eckpunkte genau in den entsprechenden Koordinaten liegen, die ich in meinem Datensatz habe. Ich möchte nicht, dass das Paket sein Layout und seinen Standort auswählt.
Shahin
Warum nicht d3js.org ? Es hört sich so an, als hätten Sie ganz besondere Anforderungen. D3 macht es extrem einfach, mit SVG zu arbeiten.
Ricardo Cruz
Hast du es mit Gephi versucht?
MM
Könnten Sie einen Link zur CrossVal-Frage bereitstellen?
Jim

Antworten:

4

Nun, seit dieser Hilfeanfrage sind viele Monate vergangen. Ich schreibe diese Antwort auf meine eigene Anfrage, um meine Erfahrungen zu teilen. Ich habe gelernt ggplot2und dann ggvisauch noch Shiny. Shinykann mit beiden arbeiten, aber ich fand ggvisstrukturierter und klarer im Vergleich zu ggplot2. Etwas, was als erstere zu erwarten ist, wird auf der Grundlage der Entwicklungserfahrung des letzteren entwickelt. Darüber hinaus ggvisscheint es viel schneller als ggplot2bei der schnellen Grafik- / Diagrammgenerierung zu sein, es scheint viel besser für 'Shiny' und das Erstellen eines Applets geeignet zu sein. Der negative Punkt ist jedoch das Fehlen vieler Funktionen, ggvisda das Paket in der Entwicklung ist und noch nicht ausgereift ist.

Und vielen Dank an die Kommentare hier. Ich habe nachgesehen Gephi, es würde nicht helfen. Ich habe mein Applet erstellt, das wirklich gut funktioniert, aber ich bin endlich zu dem Punkt gekommen, dass ich leistungsfähigere Tools verwenden muss, wie d3js, wie man bereits vorgeschlagen hat.

Shahin
quelle
0

Zeit vergeht! Nach 2 Jahren Berufserfahrung beantworte ich jetzt meine eigene Frage mit einem besseren Verständnis von Shiny, R und interaktiver Visualisierung.

Der Plotly ist bei weitem die beste Antwort. Es kann leicht durch ggplotly () -Konvertierung von statischen ggplot2-Plots oder direkt durch Erlernen der Logik hinter den Plotly-Funktionen verwendet werden.

Der letztere Fall wird für Anwendungen mit verschiedenen Darstellungen vorgeschlagen.

Shahin
quelle