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 .
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 ggvis
und eingegrenzt ggplot2
. ggvis
ist neu und frisch und verfügt über ein absichtliches Design zur Erstellung interaktiver Diagramme. Aber ich habe herausgefunden, dass ggplot2+Shiny
auch interaktive Diagramme erstellt werden können. (Ist das richtig?) Außerdem habe ich festgestellt, dass ggplot2
die Funktionen vielfältiger und ausgereifter sind als ggvis
: Zum Beispiel ggplot2
hat es eine Zoomfunktion, ggvis
ohne sie zu haben. Wichtiger noch, da ggvis
es 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, ggplot2
aus 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.
quelle
igraph
oder D3?Antworten:
Nun, seit dieser Hilfeanfrage sind viele Monate vergangen. Ich schreibe diese Antwort auf meine eigene Anfrage, um meine Erfahrungen zu teilen. Ich habe gelernt
ggplot2
und dannggvis
auch nochShiny
.Shiny
kann mit beiden arbeiten, aber ich fandggvis
strukturierter und klarer im Vergleich zuggplot2
. Etwas, was als erstere zu erwarten ist, wird auf der Grundlage der Entwicklungserfahrung des letzteren entwickelt. Darüber hinausggvis
scheint es viel schneller alsggplot2
bei 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,ggvis
da 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, wied3js
, wie man bereits vorgeschlagen hat.quelle
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.
quelle