Soll ich zum Zeichnen mit R ggplot2 oder ggvis lernen? Ich möchte nicht unbedingt beide lernen, wenn einer von ihnen in irgendeiner Hinsicht überlegen ist. Warum erstellt die R-Community immer wieder neue Pakete mit überlappenden Funktionen? Der Einführungsblogpost erwähnt kein Wort, warum ggvis erstellt wird, da bereits ein ausgeklügeltes Plotpaket ggplot2 vorhanden ist.

Kommentare

  • ggvis ist ein völlig anderer Fischkessel Die echte Alternative ist zwischen ggplot und Gitter .
  • Ich denke, die Antwort hängt davon ab, was Sie ‚ re after. Wenn Sie ‚ nach statischen erweiterten Plots suchen, möchten Sie ‚ . Berücksichtigen Sie für die Webvisualisierung ggvis.

Antwort

Beginnen Sie mit ggplot2. Es werden statische Diagramme erstellt.

Neben statischen Diagrammen kann ggvis auch zum Erstellen interaktiver Diagramme verwendet werden. Einmal y Wenn Sie die Syntax von ggplot2 gelernt haben, folgt natürlich die Syntax zum Hinzufügen von Interaktivität zum Erstellen von ggivs-Plots.

Kommentare

  • Dies ist ungenau (möglicherweise) es war zum Zeitpunkt des Schreibens genau). ggvis kann definitiv verwendet werden, um statische Diagramme zu erstellen. Die Tatsache, dass es auch interaktive Diagramme ermöglicht, ist eine Funktion, keine Einschränkung. Ein einfaches Beispiel für ein statisches Diagramm: library('ggvis'); mtcars %>% ggvis(~wt, ~mpg) %>% layer_points(fill = ~factor(cyl))

Antwort

Ich möchte die Antwort von Dianne Cook etwas näher erläutern. Wie sie sagte, dient ggplot2 zum Erstellen statischer Diagramme, ggvis für interaktive Diagramme. Dies hat eine Reihe von Auswirkungen:

Dateityp ggvis-Ausgabe ist HTML, einschließlich CSS- und Javascript-Dateien. Ggvis gibt natürlich keine normalen Bilddateien aus. Ggplot2 gibt normale Bilder aus, die dann können in HTML oder PDF oder GIF eingebettet oder per E-Mail verschickt sein oder was auch immer. ggvis, wenn Sie die Datei per E-Mail versenden möchten, komprimieren Sie ein Verzeichnis von HTML-Dateien, die in einem Browser angezeigt werden sollen.

Animation Wenn Sie eine Animation erstellen möchten, können Sie die Frames in ggplot2 und führen sie zusammen, aber es gibt keine natürliche Möglichkeit, dies mit ggvis zu tun. Ggvis, das interaktiv agiert, animiert „live“, aber dies sind verschiedene Arten von Animationen. Wenn pro Frame mehr los ist, als ggvis verarbeiten kann Sie können dies nicht umgehen (zumindest nicht auf natürliche Weise), indem Sie die Bilder generieren und den Film im Hintergrund erstellen. Ebenso kann der Benutzer keinen Film oder keine GIF-Datei von ggvis herunterladen, um sie wiederzugeben.

Im Moment habe ich in meinem aktuellen Projekt von ggplot2 zu ggvis gewechselt, weil ggplot2 viel zu langsam war, um interaktiv zu animieren. Aber ich möchte auch, dass der Benutzer, nachdem er mit den Einstellungen gespielt hat, auf „Los“ klicken und einen Film mit voller Geschwindigkeit und flüssiger Animation von dem herunterladen kann, was er getan hat. Ich habe nicht herausgefunden, wie man das macht ggvis, 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 Sekunde oder einige Verzögerungen. ggvis hat eine Sekunde oder so, wenn Sie das Diagramm zum ersten Mal erstellen. Danach ist das Ändern 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 & Darstellung ggplot2-Diagramme scheinen etwas zu sein auf den ersten blick schöner als ggvis-plots. ggplot2-Plots sind sehr elegant. ggvis-Plots sind einfacher, aber sie wachsen auf mir. Es gibt auch Erweiterungen für ggplot2, wie die Pakete xkcd und wesanderson, bei denen es kein Analogon für ggvis gibt. Ggplot2-Plots sehen alle so aus, als wären sie von derselben Person (dem Autor von ggplot2) erstellt worden und werden nach einer Weile müde.

Vollständigkeit In ggplot2 können Plottypen erstellt werden, die ggvis zumindest nicht unterstützt bisher. Zum Beispiel gibt es in ggvis kein „Teppich“ -Diagrammelement. Ich habe ein oder zwei Choroplethen gesehen, die mit ggvis hergestellt wurden, aber es gibt noch keine natürliche integrierte Unterstützung. Ggplot2 hat Polarkoordinaten (dh Tortendiagramme). , ggvis nicht. Auch fehlt in ggvis (und ist entweder in ggplot2 oder in einer ggplot2-Erweiterung verfügbar): Boxplots; Konturdiagramme; natürliche Heatmaps; natürliche Korrelationsdiagramme; Punktdiagramme; Geigenplots; Netzwerkdiagramme; Dendrogramme. Natürlich bin ich mir sicher Einige sehr clevere Leute können all dies in ggvis erstellen, aber ich bin nicht so clever.

Anmerkungen ggplot2 hat ein sehr schönes, möglicherweise nicht ausreichend genutztes Annotation-Framework. ggvis nicht.

Nebenhandlungen & Facetten ggplot2 hat eine sehr schöne , aber vielleicht eher begrenzte „Facettierungs“ -Funktion. Sie können auch mehrere ggplot2-Diagramme mit dem Rasterpaket kombinieren. Ab sofort können Sie dies auch nicht mit ggvis tun. ggvis-Diagramme können nicht zu einem einzigen Bild kombiniert werden (da es sich nicht um Bilder handelt, sondern um „lebende“ Webseiten), und es werden keine Facettierungen oder Unterzeichnungen unterstützt. Dies sollte in Vorbereitung sein.

Visuelle Flexibilität ggplot2 möchte, dass jede Handlung gleich aussieht, was bedeutet, dass der Autor sie stilistisch bevorzugt Es gibt zum Beispiel keine Möglichkeit, ein Diagramm mit mehreren y-Achsen in ggplot2 zu haben. ggvis can. ggvis ist viel flexibler als ggplot2. Es ist viel einfacher, Dinge wie Legenden zu verbergen, mehrere Legenden zu einer zu kombinieren und verschiedene Skalen für verschiedene zu verwenden Dinge auf demselben Plot usw.

Tiefe Anpassbarkeit Wenn Sie beispielsweise a erstellen möchten neue clevere Skala, es ist nicht zu schwer, das in ggplot2 zu tun (obwohl es ziemlich verwirrend ist). Es scheint einfach keine Möglichkeit zu geben, viel davon in ggvis zu tun. Vielleicht ist es einfach noch nicht.

Zeitreihen ggplot2 zeichnet keine Zeitreihen. Es kann , aber es will nicht . Eigentlich will keiner von ihnen; beide bestehen darauf, Daten in einem data.frame einzugeben, und sie können nicht damit umgehen xts oder Zooobjekte. Sie haben auch keine eingebauten Funktionen zum Schneiden einer Zeitreihe. Aber ggvis wehrt sich nicht so hart gegen die Zeitreihe wie ggplot2. Das liegt zum Teil daran, dass es so schnell ist, die Daten in einem ggvis-Plot zu aktualisieren, nehme ich an. Wenn Sie eine Zeitreihe plotten möchten, müssen Sie beide in die Übermittlung schlagen, aber ggvis ist viel weniger passiv-aggressiv .

Sind sie die gleiche Syntax? Art von … Es gibt eine Menge Gemeinsamkeiten zwischen ihnen Wenn Sie lernen, im Stil des einen zu denken, können Sie sich an den Stil des anderen anpassen. Insbesondere sind beide so konzipiert, dass alle Plotaufrufe in einer einzigen Zeile ineinander geleitet werden Der Hauptvorteil davon ist, dass das Debuggen und Profiling sehr schwierig wird und die Debugging- / Profiling-Funktionen in Dingen wie Rstudio im Grunde genommen unbrauchbar werden. Abgesehen davon sind sie syntaktisch ganz anders. 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 zu verstehen finde.)

Fehler ggvis hat noch einige. Manchmal verhält es sich nur seltsam. Manchmal verschwinden Diagramme jedoch zufällig aus Gründen, deren Umgehung Stunden in Anspruch nimmt und die wenig Sinn ergeben. Die Entwickler geben dies frei zu, ggvis ist noch nicht produktionsbereit. Wenn Sie sich mit Komplexität befassen, werden Sie feststellen, dass sie kein Scherz sind.

Fazit: Das Erlernen des Zwischenplots in jedem dauert ungefähr 16 Stunden. Realistisch gesehen werden Sie also wahrscheinlich beide lernen.

Kommentare

  • Großartiger Vergleich
  • Was ist schnelleres Ggvis oder Gitter oder Rgl? (für große Datenmengen)
  • +1 fantastisches Schreiben. Ich stimme mit allem hier überein, basierend auf meinen bisherigen Erfahrungen mit beiden.
  • Hallo, was ist mit ggvis vs rcharts?
  • ZEITREIHE: ggplot2 gewinnt definitiv mit der Erweiterung ggfortify. Siehe diese hervorragende Dokumentation dazu: rpubs.com/sinhrks/basics .

Antwort

Ich denke, die Nachricht nach library(ggvis) ist selbsterklärend:

Die ggvis-API entwickelt sich derzeit rasant weiter. Wir empfehlen Ihnen dringend, sich bei der Produktion nicht darauf zu verlassen, sondern sie zu erkunden. Wenn Sie auf einen eindeutigen Fehler stoßen, reichen Sie bitte ein minimal reproduzierbares Beispiel unter https://github.com/rstudio/ggvis/issues ein. Für Fragen und andere Diskussionen verwenden Sie bitte https://groups.google.com/group/ggvis .

Im Vergleich zu ggplot2 fehlen in ggvis noch einige Funktionen und die Politur (keine Möglichkeit, einem Diagramm Titel hinzuzufügen, z. B. Achsentitel, die sich mit Häkchenbeschriftungen überschneiden, und es gibt mehr, Facettierung wird nicht unterstützt usw.) Andererseits fühlt sich die ggvis-Syntax etwas sauberer an und die Interaktivität ist wirklich fantastisch.

Aus eigener Erfahrung ist ggvis ein Muss, wenn Sie eine glänzende App erstellen. Dann überwiegen die Vorteile einer web- und R-freundlichen Grafikplot-Engine die derzeit vorhandenen Mängel erheblich.

Wenn Sie statische Diagramme für die Datenexploration erstellen möchten, ist ggplot2 eine ausgereifte Bibliothek mit vielen coolen Funktionen und einer gesunden Benutzergemeinschaft und vielen Ressourcen, aus denen Sie lernen können.

Die Philosophie hinter beiden Paketen ist ähnlich, sodass die Fähigkeiten ganz einfach von einem Paket auf ein anderes übertragen werden können.

Antwort

Die R-Community entwickelt aus verschiedenen Gründen immer wieder neue (und häufig überlappende) Pakete:

1) Jemand möchte etwas ändern oder etwas hinzufügen, das in einem vorhandenen Paket nicht verfügbar ist, aber ein Großteil davon überschneidet sich (daher viele Pakete, die eine Regression durchführen).

2) Jemand schreibt a Paket als Aufgabe

3) Das Schreiben von Paketen macht Spaß (wenn Sie so etwas mögen)

4) Sie wissen nicht, dass das Originalpaket existiert

Kommentare

  • In Bezug auf das spezifische Beispiel und Ihren Punkt 4: ggvis wurde von denselben Personen wie ggplot2 verfasst. Der wichtige Punkt hierbei ist, dass die Verwendung von ggplot2 so weit verbreitet ist, dass es unmöglich geworden ist, Änderungen zu implementieren, ohne viele vorhandene Code- / abhängige Pakete zu beschädigen.
  • Ist diese Art der Neuerfindung bereits vorhandener Pakete dazu bestimmt passieren genau wie wirtschaftliche Rezessionen in kapitalistischen Gesellschaften?
  • @Peter: Als Außenseiter von R scheint mir dies ein fairer Kommentar zu sein, aber (am ungewöhnlichsten) Sie ‚ t beantworte die Frage nicht!
  • @NickCox Ich habe eine der Fragen beantwortet, die in der Frage enthalten sind. :-).
  • @Peter Sehr fairer Punkt. Ein Querverweis auf stats.stackexchange.com/questions/58966/… halte ich daher für relevant.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.