Ich möchte ein wenig auf die Antwort von Dianne Cook eingehen. Wie sie sagte, ist ggplot2 für die Erstellung statischer Diagramme gedacht, ggvis für interaktive Diagramme. Das hat eine Reihe von Implikationen:
Der Dateityp der ggvis-Ausgabe ist HTML, einschließlich CSS- und Javascript-Dateien. Natürlich gibt ggvis keine normalen Bilddateien aus. ggplot2 gibt normale Bilder aus, die dann in HTML oder PDF oder GIF eingebettet oder per E-Mail verschickt werden können, oder was auch immer. ggvis, wenn Sie die Datei per E-Mail versenden möchten, komprimieren Sie ein Verzeichnis mit HTML-Dateien, die in einem Browser angezeigt werden sollen.
Animation Wenn Sie eine Animation erstellen möchten, können Sie die Frames in ggplot2 erstellen und zusammenführen. Mit ggvis können Sie dies jedoch nicht auf natürliche Weise tun. Wenn ggvis interaktiv agiert, wird "live" animiert, aber dies sind verschiedene Arten von Animationen. Wenn pro Frame mehr passiert, als ggvis verarbeiten kann, können Sie dies (zumindest auf natürliche Weise) nicht umgehen, indem Sie die Bilder generieren und den Film im Hintergrund erstellen. Ebenso kann der Benutzer keine Filme oder GIF-Dateien von ggvis herunterladen, um sie wiederzugeben.
Momentan bin ich in meinem aktuellen Projekt von ggplot2 auf ggvis umgestiegen, da ggplot2 viel zu langsam war, um interaktiv animiert zu werden. Aber ich möchte auch, dass der Benutzer, nachdem er mit den Einstellungen gespielt hat, auf "go" klicken und einen Film mit voller Geschwindigkeit und reibungslosen Animationen von dem herunterladen kann, was er getan hat. Ich habe nicht herausgefunden, wie man das mit ggvis macht, aber es wäre Kuchen mit ggplot2.
Geschwindigkeit ggvis ist viel, viel, viel schneller als ggplot2, insbesondere beim Ändern von Daten. Jeder ggplot2-Plot hat eine oder mehrere Sekunden Verzögerung. ggvis hat ungefähr eine Sekunde Zeit, wenn Sie das Diagramm zum ersten Mal erstellen. Danach ist die Änderung der Daten nahtlos. ggvis kann "reaktiv" mit Daten verknüpft werden, sodass es sich selbst aktualisiert, wenn sich die Daten ändern. Mit ggplot2 wird der gesamte Plot neu gezeichnet.
Stil & Aussehen ggplot2-Diagramme erscheinen auf den ersten Blick ein bisschen netter als ggvis-Diagramme. ggplot2 Handlungen sind sehr elegant. ggvis-Pläne sind einfacher, aber sie wachsen auf mir. Es gibt auch Erweiterungen für ggplot2, wie z. B. die Pakete xkcd und wesanderson, für ggvis gibt es kein Analog. ggplot2-Diagramme sehen alle so aus, als wären sie von derselben Person (dem Autor von ggplot2) erstellt worden, und das wird nach einer Weile müde.
Vollständigkeit Es gibt Diagrammtypen, die Sie in ggplot2 erstellen können und die ggvis zumindest bisher nicht unterstützt. Zum Beispiel gibt es in ggvis kein "rug" -Plot-Element. Ich habe ein oder zwei Choroplethen gesehen, die mit ggvis hergestellt wurden, aber es gibt noch keine eingebaute natürliche Unterstützung. ggplot2 hat Polarkoordinaten (dh Kreisdiagramme), ggvis nicht. Ebenfalls in ggvis nicht vorhanden (und entweder in ggplot2 oder in einer ggplot2-Erweiterung verfügbar): Boxplots; Konturdiagramme; natürliche Wärmekarten; natürliche Korrelationsdiagramme; Dotplots; Geigenpläne; Netzwerk-Plots; Dendrogramme. Natürlich bin ich mir sicher, dass einige sehr clevere Leute all dies in ggvis erstellen können, aber ich bin nicht so clever.
Anmerkungen ggplot2 hat ein sehr schönes, vielleicht nicht ausreichend genutztes Anmerkungs-Framework. ggvis nicht.
Untergrund & Facetten ggplot2 hat eine sehr schöne, aber vielleicht eher eingeschränkte "Facettierungs" -Funktion. Sie können mit dem Grid-Paket auch mehrere ggplot2-Diagramme kombinieren. Ab sofort können Sie auch nicht mit ggvis. ggvis-Plots können nicht zu einem einzelnen Bild kombiniert werden (da es sich nicht um Bilder handelt, sondern um "Live" -Webseiten), und es werden keinerlei Facettierungen oder Unterplots unterstützt. Dies soll in Vorbereitung sein.
Visuelle Flexibilität ggplot2 möchte, dass jede Handlung gleich aussieht, was bedeutet, dass der Autor es stilistisch bevorzugt. Es ist beispielsweise nicht möglich, in ggplot2 ein Diagramm mit mehreren y-Achsen zu erstellen. ggvis kann. ggvis ist viel flexibler als ggplot2. Es ist viel einfacher, Dinge wie Verstecklegenden zu tun, mehrere Legenden zu einer zu kombinieren, verschiedene Maßstäbe für verschiedene Dinge auf demselben Grundstück zu verwenden usw.
Tiefe Anpassbarkeit Wenn Sie beispielsweise eine neue clevere Skala erstellen möchten, ist dies in ggplot2 nicht allzu schwierig (obwohl es ziemlich verwirrend ist). In ggvis scheint es einfach keine Möglichkeit zu geben, viel davon zu tun. Vielleicht ist es einfach noch nicht.
Zeitreihen ggplot2 zeichnet keine Zeitreihen. Es kann , aber nicht will . Eigentlich will keiner von ihnen; beide bestehen darauf, dass Daten in einem data.frame eingegeben werden, und sie können keine xts- oder zoo-Objekte verarbeiten. Sie haben auch keine eingebauten Funktionen zum Schneiden von Zeitreihen. Aber ggvis wehrt sich nicht so hart gegen die Zeitreihe wie ggplot2. Das liegt zum Teil daran, dass es so schnell geht, die Daten in einem ggvis-Plot zu aktualisieren. Wenn Sie eine Zeitserie zeichnen möchten, müssen Sie entweder in die Vorlage schlagen, aber ggvis ist viel weniger passiv-aggressiv.
Sind sie die gleiche Syntax? Art von ... Es gibt eine Menge Gemeinsamkeiten zwischen ihnen, und das Lernen, im Stil des einen zu denken, hilft dabei, sich an den Stil des anderen anzupassen. Insbesondere sind beide so konzipiert, dass alle Plotaufrufe in einer einzigen Codezeile ineinander übergehen. Der Hauptvorteil davon ist, dass das Debuggen und Profilieren sehr schwierig wird und die Debugging- / Profilierungsfunktionen in Dingen wie Rstudio im Grunde unbrauchbar werden. Davon abgesehen sind sie syntaktisch ziemlich unterschiedlich. Einige Dinge, die in ggplot2 schwierig sind, sind in ggvis einfach. Einige Dinge, die in ggplot2 einfach sind, sind in ggvis unmöglich. Und umgekehrt. (Ich habe eine Vorliebe für die Art und Weise, wie ggvis Dinge tut, die ich leichter verstehe.)
Bugs ggvis hat noch einige. Manchmal verhält es sich nur seltsam. Manchmal verschwinden die Handlungen jedoch zufällig aus Gründen, die Stunden in Anspruch nehmen und wenig Sinn ergeben. Die Entwickler geben dies frei, ggvis ist noch nicht produktionsreif. Wenn Sie mit beliebiger Komplexität umgehen, Sie werden entdecken , dass sie sind kein Scherz.
Fazit: Das Erlernen des Plottens zwischen zwei Plänen dauert ungefähr 16 Stunden. Realistisch gesehen wirst du wahrscheinlich beides lernen.