ggplot2 ist ein mächtiges Werkzeug, um professionelle Diagramme zu erstellen. Für Einsteiger ist die Syntax nicht immer intuitiv. Abhilfe schafft eine grafische Oberfläche, mit der man Variablen mit der Maus auswählen und in Felder schieben kann („drag and drop“): esquisse.
So erhält man schnell aussagekräftige Diagramme und kann Daten visuell erforschen, ohne Programmcode schreiben zu müssen. Den Code erhält man als Bonus „geschenkt“, sodass man die Ergebnisse später reproduzieren kann, ohne sich an alle Klicks erinnern zu müssen.
Zum Einstieg in ggplot2 siehe die folgenden Beiträge:
- ggplot2: Einführung in die drei Basisschichten – Daten, Ästhetiken, Geometrien
- ggplot2: Die vier fortgeschrittenen Schichten
esquisse starten
esquisse ist ein Erweiterungspaket, das man vor der ersten Verwendung installieren muss – dies ist nur ein Mal erforderlich. Es ist auf CRAN verfügbar, dem Standard-Verzeichnis für R-Pakete.
install.packages("esquisse")
Gestartet wird es mit esquisser(), das man ohne weitere Argumente aufrufen kann (optional kann man unter anderem einen Datensatz vorgeben, siehe ?esquisser).
library(esquisse) esquisser() # Alternative, wenn man das Paket nicht laden möchte: esquisse::esquisser()
RStudio bietet sogar eine noch komfortablere Möglichkeit: Einen simplen Klick unter Addins – Esquisse – ‚ggplot2 builder‘.
Es erscheint ein Fenster, in dem man einen Datensatz angeben sowie optional Variablen auswählen oder in einen anderen Datentyp umformen kann.
Mit einem Klick auf „Validate imported data“ gelangt man ins Hauptfenster.
Grafiken „zusammenklicken“ mit esquisse
Hier verwende ich Daten zu den Top 5 Bands / Künstlern (Kriterium: Anzahl der Songs / Alben in den Daten) der Jahre 2000 bis 2020. Sie stammen von der Webseite chart2000.com und sind auch auf meinem github-Profil zu finden.
Die Variable, die mich am meisten interessiert, heißt indicative revenue und stellt ein Maß für den Erlös eines Songs / Albums über die Wertschöpfungskette dar. Eine Einheit entspricht 1.000 US-Dollar.
Ziehe ich diese Variable in das Feld für X oder Y (abhängige Variable), erhalte ich automatisch ein Histogramm:
Nun kann ich mit den Daten „spielen“. Ziehe ich die Jahre (year) in das X-Feld, bietet esquisse mir ein Streudiagramm (Scatterplot / Point) an. Den Diagrammtyp kann ich links oben (im Bild: „Histogram“) beeinflussen.
Hier ein Beispiel für ein Streudiagramm mit einigen Anpassungen:
Über das Menü „Labels & Title“ habe ich Diagrammtitel, Untertitel, Legendenbeschriftung und Unter-Beschriftung (Caption: Datenquelle) vergeben sowie über „Plot Options“ die Farbskala von der Voreinstellung „ggplot2“ auf „Qualitative: Dark2“ geändert. Mit „Export & code“ konnte ich das Diagramm im PNG-Format speichern (Alternative: Powerpoint, .pptx).
esquisse: Daten filtern, R-Code abrufen
Über das „Data“-Menü kann ich zusätzlich bequem den Datensatz filtern: ohne Programmierkenntnisse, mit Schiebereglern für kontinuierliche Merkmale und per Klick für die Gruppenvariable.
Schließlich kann ich bequem den R-Code abrufen, in mein Skript einfügen und nach Wunsch weiter bearbeiten. So bleibt das Bild reproduzierbar, ohne dass ich mir alle Klicks im Menü merken muss.
Was ist esquisse? shiny App, shiny Gadget
Ein Blick auf die Konsole zeigt:
Listening on http://127.0.0.1:3675
Es handelt sich um eine Shiny App. Die R-Session ist blockiert, solange die App läuft. Die lokale R-Installation dient als Server für die App.
Ein Blick auf den Funktionscode von esquisser (Eingabe in der Konsole ohne Klammern) offenbart Genaueres: Es handelt sich um ein sog. Shiny Gadget, zu erkennen an der runGadget()-Funktion. Das ist eine spezielle Art von Shiny App, die nicht, wie sonst üblich, für den Endnutzer gedacht ist, sondern für uns als R-Programmierer / Datenanalysten / Data Scientists etc. D. h. sie soll uns die Arbeit erleichtern. Shiny Gadgets sind oft einfacher aufgebaut als ausgefeilte Apps und laufen oft in kleineren Fenstern (d. h. sie benötigen nicht unbedingt eine volle Bildschirmgröße). Sie können als Addins bequem in RStudio per Menü aufgerufen werden und es ist möglich, eigene Gadgets zu programmieren und in RStudio einzubetten.
Hier findet Ihr mehr Infos zu Shiny Gadgets.
esquisse wurde von Victor Perrier und Fanny Meyer geschrieben, mit Beiträgen von Ian Carroll und Xiangnan Dang. Kleiner Bonus: Ein französischer Spruch aus dem Kleinen Prinzen am oberen Fensterrand.
Viel Erfolg für Eure Datenvisualisierungen und R-Projekte!
2 Gedanken zu „ggplot2 leicht gemacht: Grafiken per Maus dank esquisse!“