datenleben   /     dl044: datenvisualisierung mit ggplot

Description

Unsere Reihe zum Thema Datenvisualisierung geht weiter! Wir reden √ľber ggplot, das ist n√§mlich ein n√ľtzliches Tool, um Graphen mit der Programmiersprache R zu erstellen. Am Anfang geht es um das Buch "Grammar of Graphics" und die darin vorgestellten Prinzipien f√ľr das Erzeugen von Plots. Danach erl√§utert Helena, wie sich diese Prinzipien in der Arbeit mit ggplot angewendet werden. Und dann gehen wir auch mit Beispielen ein bisschen konkreter auf einzelne Sachen ein, die dabei eine Rolle spielen. Und zum Schluss wollen wir noch ein bisschen die Vor- und Nachteile abw√§gen.

Subtitle
Wie funktioniert ggplot?
Duration
00:48:40
Publishing date
2023-11-18 11:00
Link
https://www.datenleben.de/index.php/2023/11/18/dl044-datenvisualisierung-mit-ggplot/
Deep link
https://www.datenleben.de/index.php/2023/11/18/dl044-datenvisualisierung-mit-ggplot/#
Contributors
  datenleben
author  
Enclosures
https://www.datenleben.de/podlove/file/168/s/feed/c/mp3/DL044-ggplot.mp3
audio/mpeg

Shownotes

Unsere Reihe zum Thema Datenvisualisierung geht weiter! Wir reden √ľber ggplot, das ist n√§mlich ein n√ľtzliches Tool, um Graphen mit der Programmiersprache R zu erstellen. Am Anfang geht es um das Buch "Grammar of Graphics" und die darin vorgestellten Prinzipien f√ľr das Erzeugen von Plots. Danach erl√§utert Helena, wie sich diese Prinzipien in der Arbeit mit ggplot angewendet werden. Und dann gehen wir auch mit Beispielen ein bisschen konkreter auf einzelne Sachen ein, die dabei eine Rolle spielen. Und zum Schluss wollen wir noch ein bisschen die Vor- und Nachteile abw√§gen.

Links und Quellen

Schlagworte zur Folge

Programmieren, R, ggplot, ggplot2, tidyverse, Datenvisualisierung, Datenanalyse, Daten visualisieren, Visualisierung

Beispiele in R mit ggplot2

In ggplot gibt es keine Funktion f√ľr ein Tortendiagramm. Stattdessen
erstellt man ein Balkendiagramm mit einem Balken, aber Farben f√ľr die
einzelnen Kategorien:

library(palmerpenguins)
library(ggplot2)
ggplot(penguins) + geom_bar(aes(x="", fill=species))

Und um das ganze in ein Tortendiagramm umzuwandeln wird nur das
Koordinatensystem auf Polar-Koordinaten umgestellt (also
Kreiskoordinaten):

library(palmerpenguins)
library(ggplot2)
# theta="y" heißt, dass der y-Wert der Kreisvariabeln zugeordnet wird
ggplot(penguins) + geom_bar(aes(x="", fill=species)) + coord_polar(theta="y")

Weil man dann die Kategorien zur Gruppierung verwenden kann, und dann
wird automatisch eine Legende erstellt:

library(palmerpenguins)
library(ggplot2)
library(tidyr)

penguins_long <- penguins %>%
  tidyr::pivot_longer(
    cols = ends_with("length_mm")
  )

plot_long <- ggplot(penguins_long) + geom_point(aes(body_mass_g, value, color=name))
print(plot_long)

Es ist auch möglich zwei Ebenen im Plot zu erstellen bei ggplot, ohne
die Daten umzuformatieren, aber dann kann ggplot nicht selbst eine
Legende erstellen:

library(palmerpenguins)
library(ggplot2)

plot_wide <- ggplot(penguins) + geom_point(aes(body_mass_g, flipper_length_mm), color="darkgreen")
plot_wide <- plot1 + geom_point(aes(body_mass_g, bill_length_mm), color="darkviolet")
print(plot_wide)

Intro (00:00:00)

Thema des Podcasts (00:00:18)

Helena: Willkommen zur 44. Folge beim Datenleben Podcast, dem Podcast √ľber Data Science. Wir sind Helena

Janine: und Janine

Helena: und m√∂chten euch die Welt der Daten n√§her bringen. Was f√ľr Daten umgeben uns? Wie werden Daten f√ľr uns lesbar? Und was k√∂nnen wir aus ihnen lernen? Wer schon immer mehr dar√ľber wissen wollte, ist hier richtig, denn diesen Fragen gehen wir nach.

Thema der Folge (00:00:37)

Janine: Und dieses Mal besch√§ftigen wir uns wieder mit dem Thema Datenvisualisierung, das wir hier ein bisschen weiterf√ľhren m√∂chten. Und zwar soll es heute um ggplot gehen. Das ist n√§mlich ein n√ľtzliches Tool, um Graphen mit der Programmiersprache R zu erstellen. Und ja, daf√ľr wird Helena gleich erstmal auf ein wunderbar grundlegendes Buch eingehen mit dem Titel "Grammar of Graphics". Da werden n√§mlich sechs grundlegende Prinzipien vorgestellt und davon gehen wir dann weiter zu ggplot und wie sich diese Prinzipien in der Arbeit mit ggplot, naja, erkennen und anwenden lassen. Und dann gehen wir auch mit Beispielen ein bisschen konkreter auf einzelne Sachen ein, die dabei eine Rolle spielen, also wie zum Beispiel verschiedene Datenformate ins Spiel kommen, was die verschiedenen Arbeitsschritte von ggplot sind, ob es eine Grafik tats√§chlich angezeigt wird und zum Schluss wollen wir noch ein bisschen die Vor- und Nachteile abw√§gen, die ggplot so mit sich bringt.

Warum ist das Thema wichtig? (00:01:39)

Helena: Ja, und wir befassen uns mit diesem Thema, weil Datenvisualisierung ja ein wichtiges Thema ist, mit dem wir uns immer mal wieder auseinandersetzen. Deswegen befassen wir uns dieses Mal in der Folge mit einem sinnvollen Tool eben f√ľr Datenvisualisierung und zwar ggplot. Das verwende ich tats√§chlich auch sehr viel beruflich und deswegen reden wir heute dar√ľber.

Einspieler: Allgemein zum Thema (00:02:03)

Janine: Was ist R? R ist eine freie Programmiersprache, die eine der Standardsprachen f√ľr statistische Problemstellungen ist. Und sie wird in vielen Gebieten angewendet, besonders auch in der Wissenschaft. Mit R k√∂nnen n√§mlich statistische Berechnungen gemacht und dazugeh√∂rige Grafiken erstellt werden. Dabei hilft die relativ benutzer*innenfreundliche Entwicklungsumgebung namens RStudio, das auch anzuwenden. Ein gro√üer Vorteil dieser Programmiersprache ist, dass nur wenige Zeilen Code notwendig sind, um recht komplexe statistische Probleme zu bearbeiten. Wof√ľr R unter anderem eingesetzt werden kann, ist Datenvisualisierung, Umwandlung von Daten, S√§ubern von Datens√§tzen, Import von Daten aus verschiedenen Quellen und das Anwenden verschiedener statistischer Verfahren auf die vorhandenen Datens√§tze. Ein weiterer Vorteil ist, dass R kompatibel ist mit einer Reihe anderer Programmiersprachen. So k√∂nnen auch verschiedene Arbeitsschritte tats√§chlich in anderen Programmen erledigt werden, die f√ľr bestimmte Teilaufgaben vielleicht besser geeignet sind. Oder umgekehrt, R wird nur f√ľr eine sehr spezielle Aufgabe in andere Anwendungen einbezogen. Es gibt eine gro√üe Menge von Paketen, die f√ľr R entstanden sind und zus√§tzliche Funktionen oder spezielle Anwendungsf√§lle unterst√ľtzen. Pakete sind hierbei Programmbibliotheken, die eben diese bestimmten Funktionen enthalten k√∂nnen. 29 Pakete sind standardm√§√üig in R enthalten, wenn es installiert wird, wovon 14 die grundlegenden Funktionsweisen bereitstellen und auch jedes Mal automatisch geladen werden, wenn R benutzt wird. Alle weiteren Pakete, die f√ľr einen bestimmten Zweck ben√∂tigt werden, werden auch nur dann mittels Code geladen, wenn sie auch tats√§chlich eingesetzt werden, was das Ganze eben etwas schlanker macht. Was R zum Beispiel konkret kann, sind Zeitreihenanalysen, Gl√§ttungsverfahren, Clusteranalysen, Wahrscheinlichkeitsverteilungen, es unterst√ľtzt bei klinischen Studien und Metaanalysen. Die gr√∂√üte Sammlung an Paketen, die es f√ľr R gibt, ist die Comprehensive R Archive Network und darin sind derzeit fast 20.000 Pakete enthalten. Viele sind einem bestimmten Thema gewidmet oder erweitern bestehende Pakete um zus√§tzliche Funktionen. Darin kommen zum Beispiel Pakete vor wie DS4Psy, Data Science for Psychologists, also ein spezielles Thema f√ľr eine spezielle Gruppe von Menschen, dieses Paket wird wahrscheinlich alle Funktionen enthalten, die f√ľr genau diese Anwendung sinnvoll sein k√∂nnen. Es gibt aber auch so Sachen wie rTrack, Data Analysis Relating to Star Trek, das hei√üt, ja, warum nicht mal mit Daten von/aus √ľber Star Trek besch√§ftigen. Und wie eben schon angedeutet, manche Pakete erg√§nzen auch bestehende Pakete, ein Paket ist ggplot und ein erg√§nzendes Paket ist aplot, das ja, ein mit ggplot gestaltete Grafik um weitere Informationen erg√§nzen kann. Es gibt aber auch Sammlungen von Paketen, die deutlich spezieller sind und schon mehrere enthalten, zum Beispiel das tidyverse. tidyverse ist eine Sammlung von R-Paketen, die die Anwendungen f√ľr Data Science Probleme deutlich vereinfachen, weil hier viele Pakete zusammenkommen, die eben bestimmte Schritte √ľbernehmen k√∂nnen und Funktionen bereitstellen, die speziell f√ľr Data Scientists spannend sind. Darin ist zum Beispiel eben auch ggplot enthalten, ein Paket, das die M√∂glichkeiten f√ľr grafische Darstellung deutlich vergr√∂√üert.

Was steckt hinter Grammar of Graphics? (00:06:06)

Helena: Ja, und das gg in ggplot steht f√ľr Grammar of Graphics. Und das ist eigentlich der Titel eines Buches, das eben die von dir gerade schon genannten sechs grundlegenden Prinzipien einf√ľhrt. Das ist ein Buch von Leland Wilkinson und der hat fr√ľher bei SPSS gearbeitet, was eines der gro√üen Statistikprogramme ist, die es so gibt, mit denen viele Leute arbeiten, und der hat auch in der Software Tableau mitgewirkt, die auch innerhalb von Statistikmenschen eine gewisse Bekanntheit hat. Ja, und das Ganze startet erstmal damit, dass ein mathematischer Graph erstmal ein abstraktes Konstrukt ist. Also wir haben vielleicht noch irgendwie Kurvendiskussionen aus der Schule in Erinnerung oder sowas und hat man dann irgendwie einen Graphen, den man malt und dann kann man damit irgendwelche Dinge ausrechnen und so weiter. Und dieses abstrakte Konstrukt kann man erstmal nicht sehen, sondern erst wenn man daraus eine Grafik macht, wird das Ganze sichtbar. Das hei√üt, wir brauchen Datenvisualisierung, um irgendwas sichtbar zu machen. Und die Idee bez√ľglich dieser Grundprinzipien ist halt, ja, Grafiken zu statistischen Daten sollen bestimmten Regeln folgen. Man kann zum Beispiel nicht einfach irgendeinen Punkt irgendwo hinmalen und die Position von diesen Punkten ver√§ndern, ohne dass man √ľber die Daten l√ľgen w√ľrde. Das hei√üt, man m√∂chte schon, dass das, was man darstellt, auch akkurat ist auf Basis der Daten und nicht einfach irgendwas ist. Und deswegen besteht eben jede Grafik bei Grammar of Graphics aus sechs grundlegenden Komponenten und die erste davon sind einfach die Daten. Das hei√üt, jede Grafik muss erstmal auf Basis von Daten erzeugt werden. Dann gibt es sogenannte statistische Transformationen der Daten. Also, wenn ich zum Beispiel die H√§ufigkeiten von bestimmten Ereignissen in einem Histogramm darstellen m√∂chte, muss ich diese H√§ufigkeiten erstmal berechnen. Das hei√üt, auf Basis der Daten berechne ich Dinge, die dann dargestellt werden. Ein anderes Beispiel, das wir auch schon in vergangenen Folgen hatten, ist der Boxplot. Auch das basiert erstmal darauf, dass man eine statistische Auswertung macht auf Basis der Daten und diese dann darstellt.

Janine: Wir hatten da ja in der einen Folge dr√ľber geredet und ich erinnere mich jetzt so an dieses Stichwort "abgeleitete Werte". Also, aus der statistischen Transformation fallen dann vielleicht auch unter Umst√§nden neue Werte raus, die dargestellt werden.

Helena: Das ist die Frage, was du mit "neuen Werten" meinst.

Janine: Ja, also halt die statistische Transformation vollzieht so eine Art Berechnung und dabei entstehen halt Ergebnisse und die werden mit einbezogen.

Helena: Genau, oder nur diese Ergebnisse werden √ľberhaupt dargestellt. Die basieren immer noch auf den Daten, aber ja, ist halt die Frage, wie man diese Daten darstellen will. Genau, das dritte grundlegende Prinzip ist, mit welchen Skalen man diese Daten darstellt, also zum Beispiel ob sie linear geplottet werden oder logarithmisch. Dann Koordinatensysteme, also zum Beispiel kathesische Koordinaten versus Polarkoordinaten. Dann, das f√ľnfte Prinzip, sind die grafischen Elemente und ihr Aussehen. Also erstmal die Frage, malt man √ľberhaupt Punkte oder Linien? Welche Farben haben die? Welche Formen? Also ein Boxplot hat ja eine bestimmte Form im Gegensatz zu einem Punkt. Ein Punkt hat auch eine bestimmte Form und eine Linie kann ja auch gestrichelt sein zum Beispiel. Und dann gibt es als sechstes Prinzip noch die Orientierungshilfen, die in einer Grafik enthalten sein sollen. Und damit ist gemeint sowas wie die Achsen, die Beschriftung, die Legenden, die dann sagen, ja, diese Punktform bedeutet folgendes oder diese Farbe bedeutet folgendes und so weiter. Ja, und dann basiert das Bearbeiten einer Grafik aus vier Grundprinzipien, n√§mlich erstmal die Spezifikation, bei der man sagt, was f√ľr einen Plot man haben will. Dann das Zusammensetzen all dieser Sachen zu einem Gesamtkonstrukt. Dann das Anzeigen der Grafik, also zum Beispiel, wenn man jetzt irgendwie eine Bilddatei generieren m√∂chte oder dass es auf dem Computerbildschirm dargestellt wird. Und das vierte ist dann das √úberarbeiten. Das hei√üt, im Prinzip ist das so eins, das alle drei anderen umfasst, indem man dann sagt, man hat jetzt ein Ergebnis gesehen und f√§ngt an, es wieder zu modifizieren, indem man ein bisschen eine Spezifikation √§ndert zum Beispiel. So, das √úberarbeiten ist jetzt nicht unbedingt f√ľr jede Grafik n√∂tig, wenn man schon vorher genau sich ein Kochrezept ausgedacht hat f√ľr eine Grafik. Aber es ist relevant, es eben als Grundprinzip noch mit aufzunehmen, weil das √úberarbeiten einer Grafik soll ja auch einfach sein. Und da gibt es halt auch einige Tools, wo man erstmal etwas, wenn man etwas hingemalt hat, dann wird es schwer, das wieder zu √§ndern. Deswegen ist es schon ein mitzudenkender Aspekt.

Janine: Und auch nicht verkehrt hinsichtlich von Fehlerkorrekturen, glaube ich. Also wenn ich jetzt an Audioschnitt oder Videos erstellen denke, das erste, was man exportiert, das erste Ergebnis ist nie das finale.

Helena: Ja, genau. Das hei√üt, man hat dann einmal angezeigt und dann sieht man, ah, da will ich aber noch was √§ndern. Und dann ist es gut, wenn es leicht ist, das zu √§ndern. Ja, das waren jetzt eben diese vier Schritte quasi, Spezifikation zusammensetzen, anzeigen und √ľberarbeiten. In der Regel hat man in den meisten F√§llen wahrscheinlich, und das ist auch bei ggplot nicht anders, eher damit zu tun, dass man eher spezifiziert. Und zusammensetzen und anzeigen passiert beides so im Hintergrund. Dar√ľber reden wir sp√§ter aber nochmal genau. Warum es trotzdem unterschiedliche Schritte sind.

Janine: Ja, ich versuch's nochmal ganz kurz zusammenzufassen, was diese sechs Prinzipien oder Grundlagen sind. Also in Frageform, erstens, welche Daten liegen vor? Zweitens, welche statistische Transformation m√∂chte ich mit den Daten vollziehen? Drittens, wie soll die Skala f√ľr die Darstellung aussehen? Viertens, welches Koordinatensystem kommt zur Anwendung? F√ľnftens, wie setze ich die grafischen Elemente ein und gestalte sie? Und sechstens, welche Orientierungshilfen wie Achsen oder Legenden m√∂chte ich anwenden? So, das sind die Prinzipien. Und wie funktioniert das jetzt mit ggplot?

Wie funktioniert ggplot? (00:12:27)

Helena: Ja, ggplot, beziehungsweise ggplot2, wie das eigentlich genauer hei√üt. Wobei mir ehrlich gesagt nicht bekannt ist, wo die 2 herkommt. Weil ich habe noch nie mit ggplot ohne 2 gearbeitet, aber gut. Ja, ggplot ist ein Programmpaket f√ľr R, um ja eben diese Prinzipien von Grammar of Graphics umzusetzen. Dabei orientiert es oder fokussiert es sich vor allem auf statistische 2D-Grafiken. Das hei√üt, in dem Buch selber wird das Ganze auch f√ľr dreidimensionale Grafiken diskutiert, aber mit ggplot lassen sich nur 2D-Grafiken darstellen und erzeugen. Ja, das Sch√∂ne an ggplot ist eben, dass es mit sehr guten Standardeinstellungen kommt. Das hei√üt, wenn man nicht so viel spezifiziert, dann hat man schon mal einen sehr guten Plot. Also zum Beispiel ist der Hintergrund immer eher grau und die Linien in dem Plot, also die Hilfslinien sind dann so wei√ü, sodass diese nicht von den eigentlichen Daten ablenken, aber gleichzeitig, wenn man das Ganze auf zum Beispiel auf einer Konferenz vorstellt, wenn man auf einem sehr hellen Beamer einen Vortrag h√§lt, strengt es die Augen nicht so sehr an, weil es kein wei√üer Hintergrund ist, sondern eben ein leicht grauer Hintergrund. Wenn man das nicht mag, kann man das nat√ľrlich √§ndern. In meiner Erfahrung kam das bei Leuten, die das nicht gewohnt waren, dass das ja auch so aussehen k√∂nnte, manchmal nicht so gut an, wenn man alte Tools gewohnt war, aber ja.

Janine: Gewohnheiten.

Helena: Ja, Gewohnheiten. Und die Umsetzung der Grundprinzipien k√∂nnen wir mal im Beispiel des Boxplots beschreiben. Also es gibt die sogenannten Geometrien in ggplot. Die fangen wir mit "geom_" an. Das ist dabei, was wir vorhin als grafische Elemente hatten als Grundprinzip, die beschreiben, wie etwas aussehen soll. Also ein Boxplot ist halt eine Box mit bestimmten Linien und eine Linie ist eine Linie und ein Punkt ist ein Punkt. Beziehungsweise k√∂nnen dann nat√ľrlich noch ver√§ndert werden. Aber da gibt es ganz viele Sachen von. Und f√ľr Boxplot und Histogramm zum Beispiel, die wissen dann auch in der Regel, dass man bestimmte statistische Transformationen machen will. Deswegen werden die automatisch, wenn man diese Geometrie Boxplot ausw√§hlt, auch automatisch berechnet. Das muss man nicht mehr machen und explizit sagen. Man kann es aber √§ndern. Man kann eben auch sagen, ja, er soll jetzt aber meine eigene Funktion, die ich selber geschrieben habe, f√ľr den Boxplot verwenden.

Janine: Und wer das sich gleich nebenbei mal angucken möchte, wir haben auch Beispiele vom R-Code in den Shownotes stehen. Da ist das auch mal drin, wie zum Beispiel geom_point dann definiert wird, im Code, was Helena eben gerade beschrieben hat, wie das aussehen soll und welche Eigenschaften das hat.

Helena: Genau. Dann gibt es die sogenannten Aesthetics. Das ist letztlich, ja, welche Eigenschaften hat denn dieser Plot auf Basis der Daten. Also das ist quasi, wie die Daten auf bestimmte Dinge in dem Plot √ľbersetzt werden. Eine Aesthetik kann zum Beispiel sein, welche Werte sind auf der x-Achse. Also, welche Spalte in den Daten beschreibt die x-Achse oder halt auch die y-Achse. Aber auch die Farbe. Und die Farbe hat dann wieder verschiedene Kategorien, weil eine Farbe kann eine Linienfarbe sein, aber auch eine F√ľllfarbe. Das hei√üt, man kann bestimmte Sachen, wenn man jetzt irgendwie ein Balkendiagramm hat, auch √ľber die Linienfarbe darstellen, w√§hrend man meistens eher mit der F√ľllfarbe arbeitet zum Beispiel. Und bei anderen Geometrien, wie zum Beispiel Linien oder Punkten, kann auch der Linientyp gemeint sein. Also gestrichelt, gepunktet oder eine durchgezogene Linie. Oder die Punktform kann auch ver√§ndert werden, dass man da stattdessen Xe hin macht. Und da haben halt diese Punktformen eine bestimmte Bedeutung auf Basis der Daten. Ja, ein Punkt, den ich gerade schon angerissen hatte, ist ja die Berechnung der Box beim Boxplot passiert innerhalb von ggplot. Das hei√üt, ich gebe nicht vorher schon die statistischen Werte rein, sondern es wird automatisch eine sogenannte stat-Funktion innerhalb der Geometrie aufgerufen. Eine Statistikfunktion, die jetzt einfach Standardeinstellungen hat f√ľr den Boxplot, aber man k√∂nnte das auch √§ndern. Und da ist dann nat√ľrlich schon mal eine Frage, warum soll das denn √ľberhaupt so ein Grafiktool machen, diese statistischen Umwandlungen? Ja, zum einen m√ľsste man Mehrschritte selber machen, wenn man vorher die selber ausrechnen m√∂chte, um das darzustellen. Ja, und wenn man Mehrschritte machen muss, verliert man auch ein bisschen Flexibilit√§t, wenn man den Plot bearbeiten m√∂chte, weil dann muss man ja auch die Berechnung vorher ver√§ndern. Und wenn das Grafiktool selbst erst die Statistiken berechnen kann, dann lassen sich die selben Daten gleichzeitig auch f√ľr mehrere verschiedene Auswertungen darstellen. Da muss man nicht mehrere Auswertungen selber ausrechnen, sondern kann die einfach darstellen lassen. Und man beh√§lt die Verbindung zwischen den Eingangsdaten und dem, was dargestellt wird. Wenn man Zwischenschritte h√§tte, w√ľrde man diese Verbindung ja wahrscheinlich eher verlieren. Oder es wird zumindest schwerer nachvollziehbar, wo genau jetzt ein bestimmter Punkt herkommt. Und wenn man sich dann dem Skalenprinzip besch√§ftigt, also die Skalen als Grundprinzip von Grammar of Graphics, hei√üt dann im Boxplot zum Beispiel, dass ich auf der x-Achse als Skala einfach die verschiedenen Boxen haben will, was auch immer ich dann nutze als, ja, daraus m√∂chte ich meine Gruppen berechnen, dann ist das die eine Skala und die andere w√§re dann mit der y-Achse wahrscheinlich. Also man kann das nat√ľrlich auch switchen, aber potenziell die y-Achse stellt dann die eigentlichen Werte dar. Das sind dann einfach Zahlen in dieser Skala. Und ja, standardm√§√üig benutzen Boxplot bei ggplot als Koordinatensystem dann eben kathesische Koordinaten mit einer, ja, linearen Skala und...

Janine: Kannst du nochmal kurz sagen, was kathesisches Koordinatensystem bedeutet?

Helena: Das ist das Standardkoordinatensystem, was man typischerweise in der Schule gelernt hat, wenn man ein Koordinatensystem gelernt hat. Bei dem gilt zum Beispiel, dass Parallellinien sich nicht schneiden können, solche Dinge.

Janine: Ja, und du hattest vorhin noch, wenn wir jetzt schon beim Nachfragen sind, die Polarkoordinaten erwähnt. Was bezeichnet das?

Helena: Also es gibt sogenannte Kreiskoordinaten, die nennt sich dann eben auch Polarkoordinaten. Und da hat man dann eben, ja, den Abstand zum Mittelpunkt als eine Koordinate und den Drehwinkel, um auf diese eine Position zu kommen. Man kann im Prinzip mit Polarkoordinaten auch den gleichen zweidimensionalen Raum abbilden wie mit kathesischen Koordinaten. Also man kann die ineinander umrechnen ohne Probleme. Aber wenn man Polarkoordinaten benutzt, dann kann man halt einfach Dinge auf Kreise malen zum Beispiel. Und ein Beispiel, was wir aus unserem Alltag kennen, was jetzt in ggplot nicht drin ist, weil es dreidimensional ist, sind ja so Koordinatensysteme wie das, was bei GPS benutzt wird, das ja dann Zahlenwerte auf einer Kugel mappt. Da hat man bei einer Kugel hat man dann auch quasi zwei Koordinaten, die so einen Winkel darstellen. Das ist dann L√§ngengrad und Breitengrad. Und die H√∂he, was der Abstand zum Mittelpunkt der Kugel ist. Was man dann in der Regel nur als H√∂he √ľber Normal ull oder so hat. Weil das sind die Werte, mit denen wir auch wirklich sinnvoll arbeiten k√∂nnen. Aber das ist auch ein Koordinatensystem, was eben nicht kathesisch ist, weil auf einer Kugel gibt es keine parallelen Linien.

Janine: Okay.

Helena: Also zumindest nicht, wenn diese Linien auch Kreise sein sollen, also Vollkreise sein sollen.

Janine: Ja.

Helena: So gesehen.

Janine: Sehr gut, dann n√§hern wir uns weiter den Sachen. Ich habe noch eine letzte Frage an dieser Stelle. Ich habe mir die Frage gestellt, inwiefern sich √ľberhaupt Skala- und Koordinatensystemen wirklich unterscheiden. Geh√∂rt das nicht irgendwo auch zusammen, weil man es immer zusammen sieht? Wie sieht das da aus? Warum wird da eine Unterscheidung gemacht?

Helena: Also zum einen kann eine Skala ja auch sowas wie Kategorien enthalten. Also zum Beispiel Parteien, wenn man Wahlergebnisse sich anguckt, dann ist die eine Skala, die Farbskala in der Regel, sind Kategorien. Das ist ja so gesehen jetzt nicht unbedingt eine Koordinate. Und dann gibt es eben noch, ja man kann das zum Beispiel von dem Tortendiagramm erklären. Ein Tortendiagramm gibt es in ggplot nicht. Warum nicht? Weil man sagt, ja in Grammar of Graphics kann ich einfach das Koordinatensystem ändern. Das heißt, ich mache einfach ein Balkendiagramm, wo ich einen Balken habe mit verschiedenen Farben, der dann zum Beispiel den Parteien entsprechen kann mit ihren Wahlergebnissen. Und dann sage ich, ja ich möchte das Ganze jetzt als Polarkoordinaten darstellen. Und dann muss ich nur noch sagen, ja welcher Teil der Koordinate entspricht dann welchen Werten. Und das, was vorher die y-Koordinaten waren in dem Balkendiagramm, wäre dann zum Beispiel die Kreis-, also die Winkelkoordinate. Ja, und dann habe ich ein Tortendiagramm. Also man sieht ja sofort, dass die Darstellung komplett anders aussieht, aber es ist halt bis auf das Koordinatensystem komplett identisch. Und die Skalen sind auch die gleichen. Weil die Werte, der Wertebereich ist ja quasi von 0 bis 100 Prozent. Also einmal den Kreis rum im Tortendiagramm und einmal bis 100 Prozent im Fall von dem Balkendiagramm. Das heißt, die Skala ist die gleiche, aber die Koordinaten, auf denen das dargestellt wird, ist eben anders.

Janine: Und am Ende ist nur die Frage, wie möchte ich es anzeigen?

Helena: Genau. Und manchmal werden Dinge auch leichter auszurechnen. Also das geht jetzt vielleicht von ggplot weg. Aber jetzt so, der Grund, weshalb wir eben mit Kugelkoordinaten arbeiten, wenn wir mit GPS arbeiten, liegt halt daran, dass, ja das sieht dann so aus, als h√§tten wir Koordinaten, die auf einer 2D-Fl√§che sind, wenn wir uns nur die Kreiskoordinaten angucken. Wenn man jetzt mit kathesischen Koordinaten arbeiten w√ľrde, dann w√ľrden die sich ja die ganze Zeit √§ndern und man w√ľrde nicht verstehen, was das mit der eigenen Bewegung zu tun hat, weil die Zahlen dann v√∂llig abstrakt w√§ren. Also deswegen wird es oft einfacher f√ľr manche Fragestellungen in bestimmten Koordinatensystemen zu denken.

Janine: Das kann ich nachvollziehen. Ja, genau zu diesen Sachen sehe ich, hast du auch die Beispielcodes gemacht zum Tortendiagramm und dem Koordinatensystem auf Polarkoordinaten einmal umgestellt, oder beziehungsweise andersrum.

Helena: Genau, das findet sich dann auch in den Shownotes.

Was muss ich zu Datenformaten und ggplot wissen? (00:23:25)

Janine: Wenn ich jetzt daran gehen m√∂chte, so etwas anzuwenden, dann brauche ich ja vor allem erst mal eins, die Daten, mit denen ich arbeiten m√∂chte. Ja, wir hatten ja schon in fr√ľheren Folgen, ich wei√ü gar nicht mehr in welcher, ich glaube, das war in der Frauenlesen-Folge, wo wir einmal die Datenformate long und wide erkl√§rt haben. Ja, aber irgendwann in unserem Podcast habe ich schon gelernt, dass es verschiedene Datenformate gibt. Wenn ich jetzt ggplot benutzen m√∂chte, was muss ich denn da beim Datenformat beachten?

Helena: Ja, also grunds√§tzlich m√∂chte ggplot das sogenannte long Datenformat haben. Und zwar, weil wir hatten ja schon √ľber die √Ąsthetics geredet, also dass die Farbe zum Beispiel bestimmt werden kann aufgrund einer Gruppenzugeh√∂rigkeit. Und dazu muss man eine eigene Spalte haben, die man ggplot dann mitteilen kann, die eben diese Gruppenzugeh√∂rigkeit darstellt. Und wir k√∂nnen das Ganze ja mal an unserem Lieblingsbeispiel erl√§utern, an den Pinguinen. Wir hatten ja schon mal √ľber den Pinguindatensatz geredet, den man in R verwenden kann, um Beispiele zu zeigen. Das tun wir jetzt auch hier. So, in diesem Datensatz hat ein Pinguin eine Spezies, dann sowas wie eine Schnabell√§nge, K√∂rpergewicht und eine Flossenl√§nge. Und es ist jetzt relativ √ľblich, dass man sagt, jeder Pinguin hat genau eine Zeile. Daten, die zu einem Pinguin geh√∂ren, sind dann in einer Zeile. Und das w√§re jetzt das sogenannte "wide", also breite Datenformat. Mit sehr wenig Eintr√§gen ist jetzt, warum das eine breit und das andere lang hei√üt, vielleicht nicht ganz so offensichtlich, aber ich hoffe, es ist gleich offensichtlich, warum das andere lang hei√üt. Gut, wenn ich jetzt in ggplot die Schnabell√§nge √ľber dem K√∂rpergewicht plotten m√∂chte, dann l√§sst sich das ja relativ gut verwenden, weil es gibt einmal die... eine K√∂rpergewichtsspalte und die Schnabell√§ngesspalte. Aber was ist, wenn ich jetzt sowohl Schnabell√§nge als auch Flossenl√§nge im selben Plot haben m√∂chte? Dann w√ľrde man in vielen anderen Plottools einfach die beiden Spalten ausw√§hlen und sagen, ja, ich m√∂chte die jetzt einfach √ľber dem K√∂rpergewicht geplottet haben. Und in ggplot ist das nicht so einfach. Man k√∂nnte das zwar im Prinzip machen, w√ľrde dann aber einige der Features von ggplot verlieren. Und deswegen m√ľsste man in ggplot jetzt die Daten umformatieren. Und zwar so; K√∂rpergewicht bleibt da immer noch eine eigene Spalte und dann h√§tte man eine Spalte in der, die nennt sich dann zum Beispiel "Kategorie", wo dann eben die Kategoriennamen drin stehen, also Flossenl√§nge und Schnabell√§nge und in der anderen Spalte der Wert. Dann hat man statt den ersten drei Spalten jetzt pl√∂tzlich andere drei Spalten. Aber ein relevanter Unterschied ist, diese Tabelle ist doppelt so lang. Deswegen hei√üt es "Langes Datenformat", weil f√ľr jeden Pinguin jetzt zwei Eintr√§ge existieren. In einem eben f√ľr die Schnabell√§nge und der andere f√ľr die Flossenl√§nge. Und das Ganze m√∂chte man deswegen f√ľr ggplot haben, weil man dann ggplot sagen kann, ja, ich m√∂chte jetzt als Farbe zum Beispiel, also wenn ich jetzt das Ganze als Punkte darstellen m√∂chte, m√∂chte ich sagen, ja, die Farbe h√§ngt jetzt davon ab, welcher Datengruppe das zugeh√∂rt. Also in diesem Fall w√§re das, ist das jetzt ein Punkt f√ľr Schnabell√§nge oder Flossenl√§nge? Und dann ist die Schnabell√§nge eine Farbe und die Flossenl√§nge hat eine andere Farbe. Und dann erzeugt ggplot auch automatisch eine Legende und so weiter.

Janine: Das heißt, durch das Long-Format bekomme ich sozusagen mehr Flexibilität wieder.

Helena: Genau. Ja, und man nutzt halt auch die Features von ggplot besser aus. Man kann zwar jetzt auch irgendwie zwei verschiedene Linien malen und denen auch eine feste Farbe geben, die nicht auf Basis der Daten passiert, aber dann w√ľrde man keine automatische Legende bekommen. Und ich fand, als ich angefangen habe, mit ggplot zu arbeiten, weil eben dieses Datenformat, das halt sehr anders dann teilweise ist und noch ein bisschen Konvertierung erfordert, sehr gew√∂hnungsbed√ľrftig. Also wenn etwas eine H√ľrde war, dann das. Also das fand ich zumindest. Wir haben auch daf√ľr ein Beispiel, ja, wo das Datenformat umgewandelt wird und wie das geht in das lange Datenformat. Das benutzt dann das tidyr-Paket, was auch zum tidyverse geh√∂rt. Ja, ein anderer Vorteil jetzt zum Beispiel am longen Datenformat w√§re, wenn man jetzt sagt, ja, ich m√∂chte einen... also wenn man einen Pinguin immer in einer Zeile hat, wie beim breiten Datenformat, beim wide Format, was macht man dann, wenn man den selben Pinguin nochmal wiegt und vermisst? Zum Beispiel, wenn man ihn als Kind gewogen und vermessen hat und so weiter. Und da m√ľsste man ja f√ľr jeden Messwert nochmal Spalte einf√ľgen. Wenn man aber diese ganzen Messungen gar nicht f√ľr alle Pinguine immer macht, dann h√§tten ja ganz viele dieser Spalten ganz viele leere Werte und damit k√∂nnte man auch nicht so viel anfangen. Das hei√üt, auch deswegen kann es sinnvoll sein, das long Datenformat zu verwenden, weil man dann nicht f√ľr jeden Pinguin eine Spalte hat, sondern zum Beispiel f√ľr jede Messung, die man durchf√ľhrt, eine Zeile. Und dann kann ein Pinguin auch mehrere Zeilen beanspruchen.

Janine: Ein mehrzeiliger Pinguin.

Was gehört alles zur Spezifikation? (00:29:06)

Janine: Das ist dann jetzt so unsere Grundlage mit den Daten. Ich bin jetzt √ľberzeugt, ich m√∂chte das long Format benutzen und bereite die Daten entsprechend auf. So w√§re jetzt mein n√§chster Schritt wahrscheinlich, dann die Grafik zu erstellen. Was muss ich daf√ľr denn machen, wenn jetzt meine Daten im richtigen Format vorliegen?

Helena: Also der erste Schritt ist ja die sogenannte Spezifikation. Ich spezifiziere meinen Plot, ich sage, welche Daten ich benutzen möchte. Also im Fall von den Pinguinen sage ich, ja, ich möchte jetzt die Pinguine im Datenformat long benutzen. Und dann sage ich, welche Geometrie ich haben will, also in diesem Fall Punkte. Und da muss ich nur noch sagen, ja, was sind denn meine Aesthetics? Also auf der x-Achse möchte ich das Gewicht haben, auf der y-Achse möchte ich eben die Werte angezeigt bekommen und als Farbe möchte ich haben, ob es jetzt Schnabellänge oder Flossenlänge ist. Und dann bin ich auch schon fertig, weil andere Sachen werden in ggplot automatisch festgelegt, wenn ich die nicht benenne. Sind es kathesische Koordinaten, lineare Skala und so weiter auf den Achsen. Und ja, dann gebe ich nur noch den Plot aus.

Wann passiert das Zusammensetzen und Anzeigen? (00:30:23)

Janine: Okay, ganz am Anfang hattest du noch einen anderen Schritt erwähnt, da war noch vor dem Anzeigen das Zusammensetzen. Da hast du jetzt noch nichts zu gesagt. Wo und wann kommt dieses Zusammensetzen denn vor?

Helena: Ja, also wenn ich standardm√§√üig in ggplot ein Plot ausgebe, dann wird zuerst der Plot zusammengesetzt und dann angezeigt. Und das Zusammensetzen ist quasi der Schritt, in dem ggplot alle Sachen aus der Spezifikation nimmt und sich dann anguckt, ja, was mache ich denn jetzt damit? Also es guckt sich dann die Daten an und welche verschiedenen √Ąsthetics ich habe und dann kann es zum Beispiel sagen, ja, ich habe jetzt folgende Gruppen und f√ľr jeder Einzel dieser Gruppen soll ich einen Boxplot ausrechnen. Und das passiert in diesem Schritt. Das hei√üt, hier werden die Statistiken angewendet und es wird auch geguckt, auf welche Punkte was dargestellt werden soll, welche Achsen ich brauche, welche Legende ich brauche, wo die Legende steht, wie viel Platz diese Legende braucht. Das hei√üt, wenn die Legende sehr lange Texte enth√§lt, wird der Plot kleiner zum Beispiel. All diese Dinge werden jetzt ausgerechnet.

Janine: Also sozusagen das passiert, sobald ich quasi meinen Code ausf√ľhre?

Helena: Das passiert, wenn du deinen Plot ausgeben willst bei ggplot standardm√§√üig. Also den Code f√ľr die Spezifikation hast du zu dem Zeitpunkt schon l√§ngst ausgef√ľhrt und machst das nicht mehr. Genau. Und in ggplot hei√üt das Ganze dann ggbuild. Das ist eine Funktion, die kann man auch aktiv aufrufen. In der Regel macht man das allerdings nicht. Und was dabei herauskommt bei dieser Funktion, ist dann eben eine Tabelle, in der all die typischen Elemente von so einem Plot drin sind. Also die Achse, die Beschriftung, Titel vielleicht von dem Plot. Und dann steht da auch immer drin, zu den einzelnen, wie gro√ü die Sachen sind und so weiter. Diese Tabelle wird dann am Ende verwendet, um tats√§chlich das Ganze zu rendern, also als Grafik darzustellen. Das hei√üt, der erste Schritt ist erstmal unabh√§ngig davon, mit welcher Grafik es am Ende wird. Es ist schon noch relevant, wie viele Pixel zum Beispiel eine Grafik haben soll und wie gro√ü die Schrifttypen sind. Das muss man schon vorher wissen beim Zusammenbauen, weil ja berechnet wird, wie gro√ü ist denn die Legende zum Beispiel. Aber man hat jetzt noch keinen Punkt gemalt. Erst wenn man das alles zusammen gerechnet hat, dann kann man anfangen, Punkte zu malen. Auf zum Beispiel einer png-Datei oder auf dem Bildschirm und so weiter. W√§hrend man in der Regel diesen Unterschied nicht sieht, ergibt das allerdings schon Sinn, auch manchmal diese Zwischenschritte zu machen und damit zu arbeiten. Weil wenn ich jetzt zum Beispiel irgendwie einen Plot habe und auf einer Webseite anzeigen lasse, dann irgendwo hinklicke und wissen will, welcher Wert geh√∂rt denn jetzt zu diesem Pixel, dann muss man ja irgendwie in der Lage sein, auszurechnen, welcher Wert zu diesem Pixel geh√∂rt. Und dazu braucht man dann eben die Werte aus diesem Zusammensetzen, aus dieser Tabelle, um dann zu wissen, mit welchem Pixel korrespondiert denn das √ľberhaupt. Und das l√§sst sich damit ausrechnen. Zum Beispiel auch wenn man so eine Zoom-Funktion haben will. Man m√∂chte einen Bereich markieren am Computer, da muss ja irgendwie R auch wissen, welcher Bereich wurde denn jetzt angeklickt. Und man kriegt ja erstmal die Pixel, die auf der Grafik sind, zur√ľck. Und da muss man das auch ausrechnen. Das hatte ich zum Beispiel f√ľr einen Kunden gemacht, um ja ein bisschen Interaktivit√§t herzustellen.

Janine: Also ich versuche es ja immer in Vergleichen und vielleicht sind mehr Menschen, die zuhören, mit LaTeX vertraut als mit R oder ggplot. Ich weiß es nicht. Die Chance ist vielleich ganz gut...

Helena: Aber LaTeX ist jetzt auch nicht so verbreitet.

Janine: Nee, vielleicht nicht. Es ist selbst bei mir angekommen. Aber da ist es ja auch so, wenn ich mein Dokument dann anzeigen lassen m√∂chte, mein fertiges PDF, das dann eben, also ich dr√ľcke auch im Prinzip auf Anzeigen oder Build und dann entsteht das PDF und dabei werden ja auch mehrere Schritte vollzogen, wenn ich Literaturverweise habe, auf welche Seite die sich beziehen und so. Das sind ja mehrere Durchl√§ufe, die LaTeX macht, bis es sich quasi richtig zusammengesetzt hat und sich anzeigen kann. Also kann man das vielleicht so ein bisschen vergleichen?

Helena: Ja, im Prinzip schon.

Janine: Okay.

Helena: Gerade wenn man auch noch anf√§ngt, √Ąnderungen zu machen. Weil wenn man diese Tabelle hat, kann man ja auch anfangen, die zu benutzen und dann Werte in dieser Tabelle zu √§ndern. Also wenn man jetzt zum Beispiel mehrere Grafiken in einem Plot anzeigen m√∂chte und zwar untereinander so, dass die x-Achse immer die gleichen Werte hat, dann hat ggplot daf√ľr eine fertige Funktion, n√§mlich die sogenannten Facets. Da kann man dann quasi die gleichen Daten in verschiedene Plots aufteilen. Das ist grunds√§tzlich ganz gut, aber f√ľr einen Kunden hatte ich dann auch die Anforderung, dass jeder dieser Plots auch eine eigene Legende haben sollte und das kann ggplot dann wieder nicht selber. Das hei√üt, ich musste das ein bisschen nachbauen und um das zu machen, habe ich dann eben diese Tabellen genommen, die ggplot erzeugt hat f√ľr die verschiedenen Plots und dann die Gr√∂√üen von den einzelnen Elementen angepasst, sodass dann auch wirklich die beiden x-Achsen genau untereinander dargestellt werden konnten. Ggplot hat zwar immer noch alles zusammengebaut, aber danach habe ich halt ein bisschen was modifiziert und das danach erst gerendert. Das geh√∂rt nat√ľrlich eher zu den fortgeschrittenen M√∂glichkeiten, die man mit ggplot durchaus auch hat, aber die findet man nicht unbedingt in der Doku, sondern die findet man eher, wenn man sich existierenden Programmcode von anderen Leuten oder auch von ggplot selber anguckt. Das habe ich auch √∂fter deswegen gemacht, um herauszufinden, was eigentlich da passiert.

Janine: Ja, klingt auf jeden Fall sehr gut und auch sehr variabel noch in den Möglichkeiten, die sich am Ende so anschließen, wenn man das so ein bisschen durchstiegen hat, was da passiert.

Helena: Ja, genau. Und das, was ich jetzt gerade als Beispiel hatte, daf√ľr gibt es mittlerweile auch ein passendes ggplot-Erweiterungspaket, ...

Janine: Ahja!

Helena: ...dass das schon automatisch macht. Als ich diese Anforderungen hatte vor ein paar Jahren, gab es das noch nicht.

Janine: Ja, das ist nat√ľrlich auch der Vorteil, dass die Leute, also die Community drumherum es immer weiterentwickelt auch und nachbessert, was halt jetzt erforderlich wird.

Helena: Ja.

Welche potentiellen Nachteile hat ggplot? (00:36:49)

Janine: Wir haben ja jetzt einige Sachen geh√∂rt, die doch irgendwie, habe ich so das Gef√ľhl, sehr f√ľr ggplot sprechen. Du sagst ja auch, du arbeitest viel damit. Von daher ist es auch das Tool deiner Wahl sozusagen.

Helena: Ja.

Janine: Aber die meisten Sachen haben ja auf zwei Seiten und du hast, glaube ich, auch schon so die ein oder andere kleine Grenze erwähnt. Wie sieht es denn bei ggplot aus mit den Nachteilen? Also was muss ich abwägen, so vor-/nachteilsmäßig, wenn ich daran denke, ggplot einsetzen zu wollen?

Helena: Ja, also ein Nachteil bei ggplot, den ich durchaus schon √∂fter mal gesehen habe, ist, dadurch, dass Spezifikation und das Zusammensetzen eben getrennt voneinander sind, fallen manche Fehler in der Spezifikation erst auf, wenn man es zusammensetzen will. Das hei√üt, in dem Moment, wo ich dann die eine Codezeile, die irgendwie Quatsch produziert, ausf√ľhre, funktioniert alles, aber erst wenn es dann zusammengesetzt werden soll, ist es kaputt. Und das macht es ein bisschen schwierig, Fehler zu finden und ggplot zu debuggen. Wenn man jetzt so eine interaktive Sitzung hat, dann zeigt man sich auch einfach nach jedem einzelnen Spezifikationsschritt einmal ein bisschen an, was da passiert. Aber das muss man dann halt auch wissen, warum man das tut, sonst wundert man sich hinterher, ja, ich habe jetzt diese Gruppierung vorgenommen und am Ende sind die Gruppen alle leer und dann funktioniert die Statistische Analyse nicht mehr, aber man sieht erst mal gar nicht, warum.

Janine: Ja, und was ist da so dein Workflow, um solche Fehler dann zu identifizieren? Ist das wie bei anderen Sachen, dass man bestimmte Abschnitte erst mal auskommentiert und guckt, wo es scheitert oder wie kann man da dran arbeiten?

Helena: Ja, also ich w√ľrde jeden einzelnen Schritt erst mal mir angucken, jeden Zwischenschritt. Und ja, wenn das Ganze nicht interaktiv l√§uft, dann baue ich da eher Abfragen ein, ob bestimmte Listen vielleicht null sind.

Janine: Also quasi zwischen Ergebnisse pr√ľfen.

Helena: Ja, zwischen den Status pr√ľfen und die Annahmen √ľberpr√ľfen, dass das √ľberhaupt zu dem Plot passt, was man an Daten reingibt zum Beispiel. Daran kann es ja auch scheitern, dass irgendwie die Daten, die sind alle leer. F√§llt auch nicht auf, wenn man die Daten ggplot gibt, sondern alles beim Anzeigen. Ein weiterer Nachteil kann eben sein, dass weil eben ggplot selber diese Gruppen ausrechnet, zu denen dann statistische Analysen gerechnet werden. Ich wei√ü auch nicht so genau warum, das ineffizient ist manchmal. Aber dieses Aufteilen der Daten in Gruppen produziert sehr gro√üen RAM-Verbrauch, wenn die Daten sehr gro√ü sind. Das hei√üt, man kann teilweise ein bisschen unn√∂tig viel Speicher verbrauchen an dieser Stelle. Was man nat√ľrlich nicht als Problem hat, wenn man vorher die Statistik schon selber berechnet hat. Was dann auch wieder dazu f√ľhrt, dass ich nicht so richtig verstehe, warum das so ist. Weil ich mache ja doch auch nichts anderes als ggplot.

Janine: Vielleicht muss es sich nebenbei zu viel merken auf einmal...

Helena: Ja.

Janine: ...bis es dann das fertige Ergebnis hat.

Helena: Ja, vielleicht. Aber das ist auf jeden Fall auch schon eine Sache, wo ich dann doch dieses Prinzip mit, dass ggplot die Statistik berechnen soll, einmal aufgeweicht habe und gesagt habe, ja, ich baue jetzt meine eigene Boxplot-Geometrie, wo ich tats√§chlich nur die ausgerechneten Werte reinschmei√üe. Weil das f√ľr manche F√§lle einfach vom RAM-Verbrauch her nicht mehr ertragbar war und auf den System wo das lief halt nicht mehr funktioniert hat. Ja, und ggplot ist ja durchaus in erster Linie f√ľr statistische Grafiken gebaut worden und das merkt man insbesondere, wenn man mit sogenannten "time-series-data" zu tun hat, also Daten, bei denen auf der x-Achse die Zeit steht. Also ich meine, ggplot kann das ja gut und f√ľr statistische Analysen passiert das durchaus auch, dass es das darstellt, das kann dann auch sch√∂n das Datumsformat irgendwie anpassen und so weiter. Das ist zum Beispiel eine andere Skala noch, dass man einfach sagt, ich m√∂chte in der Skala Tage haben oder so. Das Problem ist, das sind aber dann teilweise in der Physik zum Beispiel Daten oder jetzt zum Beispiel bei der Podcast-Aufnahme sogenannte Wellenformen, da misst man irgendwie 40.000 Messwerte pro Sekunde, das hei√üt, wenn man sich irgendwie eine ganze Minute anguckt, sind das schon √ľber eine Million Datenpunkte. Und ja, Tools, die extra daf√ľr gebaut sind, wissen dann genau, dass sie nicht jeden Punkt einzeln malen m√ľssen.

Janine: Ja.

Helena: Sondern nur sagen m√ľssen, ja, dass man Ausschl√§ge sieht, dass man auf jeden Fall f√ľr jeden Zeitpunkt irgendwie Minimum und Maximum dargestellt bekommt, aber man muss nicht jeden einzelnen Punkt malen. Das ist allerdings nicht das, was ggplot tut. Wenn ich da jetzt irgendwie sage, ich m√∂chte Liniendiagramm haben oder ein Punktdiagramm, malt es auch jeden einzelnen Punkt und jede einzelne Linie. Das hei√üt, wenn ich eine Million Datenpunkte als Linien darstellen will, dauert das sehr lange. Das sollte man damit nicht darstellen, weil andere Programme kriegen das innerhalb von einer Sekunde hin ohne Probleme. Das ist einfach nicht darauf optimiert. Das, was ggplot gut kann, kann es gut, aber eine Million Datenpunkte darstellen geh√∂rt nicht dazu.

Janine: Ja, okay. Was sind denn vielleicht so als abschließende Frage nochmal dazu so deine Lieblingsanwendungen? Wann bist du dir immer sehr sicher, jetzt ist ggplot das Richtige?

Helena: Ja, also ggplot, ja, l√§sst sich sehr dynamisch verwenden. Das hei√üt, ich kann eine ganze Menge anpassen. Klar gibt es den Nachteil, dass es manchmal ganz spezielle Begrenzungen gibt, die das sehr viel komplizierter machen. Aber in den allermeisten F√§llen ist es viel einfacher als andere Plots, weil viele Dinge mit viel weniger Code m√∂glich sind. Also wenn ich meinen Plot sehr stark farblich und stilistisch anpassen m√∂chte, dann gef√§llt es mir sehr gut, weil es schnell geht und weil ich sehr gute M√∂glichkeiten habe, es so anzupassen, wie ich es gerne h√§tte. Und andere Plottools, die ich so benutzt habe, waren doch sehr umst√§ndlich. Entweder weil man da sehr viel rumklicken muss, wie bei zum Beispiel Excel oder so was wie Origin, was wir in Physiklaboren √∂fter mal hatten, so ein grafisches Tool. Und programmatisch ist es halt viel klarer strukturiert als so was wie Matplotlib f√ľr Python. Also mit Matplotlib gibt es irgendwie das Problem im Gegensatz zu ggplot, dass dieselbe Sache irgendwie, je nachdem, wie man sie verwendet, verschiedene Namen haben kann und anders funktioniert und die Doku beinhaltet immer nur eine Variante, die dann aber nicht besonders gut performt, wenn man mehrere Grafiken gleichzeitig darstellen m√∂chte oder so. Und das sind alles Dinge, die ggplot halt einfach so kann. Man hat immer einen Plot und dieser Plot l√§sst sich gut abspeichern. Man kann dann einfach, wenn man verschiedene Variablen hat, verschiedene Plots einfach benutzen und damit arbeiten.

Janine: W√ľrdest du auch sagen, also wir hatten ja in der Folge 13 √ľber Datenvisualisierung eben diese verschiedenen Funktionen oder Ans√§tze aufgemacht, wof√ľr Datenvisualisierung benutzt werden kann, also halt Kommunikation, ich m√∂chte zeigen, was da passiert, oder eben auch Exploration. W√ľrdest du sagen, aufgrund der Flexibilit√§t von ggplot, dass es sich besonders f√ľr die Datenexploration eignet, um √ľberhaupt zu erkunden, was in den Datens√§tzen verborgen ist?

Helena: Ich finde, es eignet sich sehr gut f√ľr Kommunikation, weil man halt sehr gute, h√ľbsche Plots generiert. Bei Exploration gibt es so ein paar Kleinigkeiten, wo es gibt halt auch ein Standardplottingtool in R, das in der Regel ziemlich h√§ssliche Plots macht, aus meiner Perspektive, aber f√ľr ganz bestimmte explorative Aufgaben durchaus schneller funktioniert, weil wenn man jetzt irgendwie eine Tabelle hat mit zehn Eintr√§gen und diese Eintr√§ge alle gegeneinander plotten und so weiter, funktioniert zum Beispiel mit dem Standardplottool viel besser, was f√ľr eine Exploration halt schon auch n√ľtzlich ist. Also es ist auch mit ggplot gut machbar, aber manchmal ist dieses Standardtool doch ein bisschen schneller, also in der Anwendung. Wenn man einfach nur einmal ganz groben √úberblick haben will, wenn man nicht will, dass das irgendwer anders zu Gesicht bekommt, dann kann das schon manchmal effizienter sein, einfach die normale Plotfunktion zu benutzen auf eine Tabelle.

Janine: Dann w√ľrde ich sagen, haben wir eigentlich einmal alles abgearbeitet, was wir so ansprechen wollten, oder? Und k√∂nnten zum Fazit kommen.

Helena: Ja.

Fazit (00:45:18)

Janine: Ja, ich fange vielleicht dieses Mal an. Also ich habe gelernt, ich habe schon sehr oft aufgrund des Zusammenarbeitens mit dir ggplot geh√∂rt, den Begriff, aber ich wusste tats√§chlich nicht, dass da wirklich Grammar auf Graphics hinter steckt, also die Grammatik der Graphen quasi wirklich die Grundlagen daf√ľr, wie Grafiken zusammengesetzt werden, sozusagen. Also ja, das nehme ich auf jeden Fall mit. Und eben diese sechs Prinzipien, dass es halt wirklich ganz gut ist, so diese Schritte sich vor Augen zu f√ľhren, wie ich von den Daten, die ich habe, bis hin zu einer Anzeige komme, die f√ľr andere auch lesbar und nutzbar ist. Das habe ich jetzt vor allem mitgenommen. Und ja, dass es halt eben Vor- und Nachteile gibt, was wir eben am Ende hatten.

Helena: Ja, mein Fazit ist, also ich finde das Konzept, Grafiken eben durch so eine Art sogenannte Grammatik irgendwie strukturierter zu machen, sehr sch√∂n, weil dadurch das, was man zu tun hat, halt auch immer eine klare Funktion erf√ľllt. Und w√§hrend es nat√ľrlich manchmal auch sehr sch√∂n ist, wenn man einfach dynamisch beliebig Dinge malen kann, ist es eben f√ľr statistische Auswertung schon sch√∂n, wenn das gewissen Regeln folgt, die einfach die Nachvollziehbarkeit erh√∂hen.

Janine: Ja, definitiv.

Helena: Und ich w√ľrde allen Leuten, die zweidimensionale Grafiken machen wollen, definitiv empfehlen, mit ggplot zu arbeiten.

Janine: Ja, und ihr findet auch einige interessante Links dazu in den Shownotes. Da haben wir ein bisschen was zusammengesammelt, wor√ľber wir hier gesprochen haben, was wir angerissen haben, und da k√∂nnt ihr euch nochmal umgucken.

N√§chste Folge: Jahresr√ľckblick im Dezember (00:47:00)

Helena: Ja, und in der n√§chsten Folge gibt es unseren Jahresr√ľckblick, ja, im Dezember. Also wir hatten ja bisher jedes Jahr einen Jahresr√ľckblick gemacht, zu jedem Jahr, und diesmal machen wir den eben als n√§chstes, weil es irgendwie bei Jahresr√ľckblicken durchaus nicht un√ľblich ist, dass irgendwie noch mehrere Wochen fehlen.

Janine: Mal gucken, was wir dann im Januar noch ergänzen.

Helena: Ja, wir haben auf jeden Fall flei√üig √ľber das Jahr gesammelt, was es so an spannenden Themen gab und auch Updates zu Themen, die wir im Laufe des Jahres oder des Podcasts allgemein hatten.

Call to Action (00:47:35)

Janine: Ja, und wenn ihr das und andere Folgen von uns h√∂ren m√∂chtet und nichts verpassen wollt, folgt uns gern auf mastodon unter @datenleben@podcasts.social. Ihr k√∂nnt uns auch auf der Webseite besuchen, www.datenleben.de, da findet ihr √ľbrigens auch unseren RSS-Feed, nur mal so nebenbei. Und ja, hinterlasst uns gerne Feedback, wir w√ľrden uns dar√ľber sehr freuen. Und dieses Mal nochmal der Hinweis, wir haben √ľbrigens auch einen YouTube-Kanal, wo wir kleine Videos zu unseren Einspielern ver√∂ffentlichen. Wenn ihr also kurze Themen oder Geschichten mit Leuten teilen m√∂chtet, die ihr kennt und sich so etwas durchaus mal anh√∂ren w√ľrden, aber eben keine ganze Stunde, dann k√∂nnt ihr die Videos auch rumreichen. Und ja, schaut vorbei, klickt, liked, macht all diese Dinge.

Outro (00:48:23)

Helena: Ja, dann bleiben wir nur noch f√ľr die Aufmerksamkeit zu danken und bis zum n√§chsten Mal. Ciao!

Janine: Tsch√ľss!

Deeplinks to Chapters

00:00:00.000 Intro
255
00:00:18.452 Thema des Podcasts
255
00:00:36.787 Thema der Folge
255
00:01:38.568 Warum ist dieses Thema wichtig?
255
00:02:03.280 Einspieler
255
00:06:06.304 Was steckt hinter Grammar of Graphics?
255
00:12:27.394 Wie funktioniert ggplot?
255
00:23:24.718 Was muss ich zu Datenformaten und ggplot wissen?
255
00:29:05.959 Was gehört alles zur Spezifikation?
255
00:30:22.525 Wann passiert das Zusammensetzen und Anzeigen?
255
00:36:48.903 Welche potentiellen Nachteile hat ggplot?
255
00:45:17.975 Fazit
255
00:46:59.894 N√§chste Folge: Jahresr√ľckblick im Dezember
255
00:47:34.784 Call to Action
255
00:48:23.248 Outro
255