Letzte Änderung am 07. November 2025 um 20:21:24

“Frei ist, wer missfallen kann.” — Annette Oschmann in Mädchen stärken

VorsichtStand des Kapitels: Konzeption (seit 05.2025)

Dieses Kapitel wird in den nächsten Wochen geschrieben. Ich plane zu Ende des WiSe 2025/26 eine arbeitsfähige Version des Kapitels erstellt zu haben. Das Kapitel wird etappenweise geschrieben, daher bleibt hier alles soweit erstmal mehr oder minder funktional.

Willkommen in einer weiteren wilden Linksammlung und R Code sowie einiges an interessanten R Paketen im Kontext der Visualisierung von Daten. Hier dreht sich dann fast alles um das R Paket {ggplot} und wie wir dieses R Paket sinnvoll nutzen können. Daher ist alles hier sehr stückhaft und manchmal einfach nur da. Das hat den Grund, dass ich das Kapitel hier eher als Steinbruch nutze als ein echtes Kapitel zum von oben nach unten Lesen. Sehe das Kapitel also eher als Referenzsammlung als ein Lernkapitel. Es lädt dann zum Stöbern ein. Es sind also eher kleine Rezepte in einem Kochbuch. Am Ende kommst du vermutlich aber nicht um Wickham & Grolemund (2016) und R for Data Science (2e) herum.

Dieses Kapitel dient dazu Programmierung in {ggplot} zu präsentieren. Es ist eine Sammlung von Code und Rezepten, die ich immer mal wieder nutze und immer wieder vergesse. Deshalb hat dieses Kapitel auch den Titel Cookbook. Wenn dich also Rumfummeln in {ggplot} interessiert, dann kannst du dir hier noch was anschauen. Das Kapitel ist eigentlich nie fertig, da ich sicherlich immer mal wieder was ergänzen werde.

15.1 Allgemeiner Hintergrund

In diesem Kapitel geht es hauptsächlich um das R Paket {ggplot}. Korrekterweise müsste ich natürlich eigentlich noch die korrekte Version ergänzen, aber wir schreiben selten {ggplot2} da eigentlich niemand mehr die uralte Version nutzt. Warum dieses Kapitel? Weil es eben dann doch so viel zu entdecken gibt, dass ich mir nicht alles merken kann. Daher habe ich einmal hier die Sammlung an nützlichen R Paketen um {ggplot} erstellt. Darüber hinaus war dann auch das Kapitel zur Visualisierung einfach zu voll. Viele wollen dann einfach einen {ggplot} erstellen und nicht noch durch zig Pakete scrollen. Daher ist das hier eher für mich oder für Leute, die mal rechts und links gucken wollen was da noch am Straßenrand liegt. Vielleicht findest du was, was dich inspiriert. Daher auch die Einteilung in Abschnitte, wo ich ein Problem löse und dann nochmal Abschnitte mit teilweise den gleichen R Paketen als Vorstellung.

TippWoher habe ich alle Pakete her?

Wenn es einen Link zu einer Seite gibt, den ich immer mal wieder Besuche, ist es der folgende Link: ggplot2 extensions. Du erfährst hier eine Menge neues an Paketen und es gibt immer wieder spannendes zu entdecken. Ein Besuch lohnt sich auf jeden Fall.

15.2 Genutzte R Pakete

Wir wollen folgende R Pakete in diesem Kapitel nutzen.

R Code [zeigen / verbergen]
pacman::p_load(tidyverse, readxl, latex2exp, see, duke, 
               wesanderson, ggbreak, patchwork, ggrepel,
               tidyplots, conflicted)

An der Seite des Kapitels findest du den Link Quellcode anzeigen, über den du Zugang zum gesamten R-Code dieses Kapitels erhältst.

15.3 Die Daten

Beginnen wir hier nochmal mit einem Datenbeispiel für unsere Flöhe. Wir schauen uns hier einmal an, ob es einen Unterschied in den Ernährungsformen sowie dem Entwicklungsstand gibt. Dabei messen wir dann wieder die Sprungweite. Darüber hinaus nehme ich noch das Gewicht der Flöhe mit in unseren Datensatz. Damit haben wir auch schon genug um mal etwas hier mit {ggplot} spielen zu können. Ob hier irgendwas interessantes in den Daten vorliegt interessiert uns eigentlich ja nicht. Hier geht es ums visualisieren.

R Code [zeigen / verbergen]
ggplot_tbl <- read_xlsx("data/fleas_model_data.xlsx") |> 
  mutate(feeding = as_factor(feeding),
         stage = as_factor(stage)) |> 
  select(feeding, stage, weight, jump_length)

Betrachten wir als erstes einen Auszug aus der Datentabelle. Wir werden hier immer den Messwert auf die y-Achse legen und uns dann je nach Anwendung sowie Algorithmus für eine Einflussvariable entscheiden.

Tabelle 15.1— Tabelle der vier Variablen für die Darstellung mit {ggplot}. Der Messwert ist hier die Sprungweite. Die anderen Variablen dienen als Einflussvariablen.
feeding stage weight jump_length
sugar_water adult 16.42 77.2
sugar_water adult 12.62 56.25
sugar_water adult 15.57 73.42
ketchup juvenile 7.18 83.38
ketchup juvenile 6.6 104.48
ketchup juvenile 4.19 130.18

Bitte den Datensatz hier nicht allzu überinterpretieren. Ich brauche einfach nur ein paar Daten um die Funktionen aufrufen zu können. Da ich aber nicht die generischen Daten nutzen will, mache ich hier alles mit meinen Flöhen. Das sind ja meine Tiere hier in der Bio Data Science und deshalb nehmen wir das hier mal auch als Beispiel.

15.4 Probleme von Interesse

Im Folgenden dann noch eine Sammlung an nützlichen Optionen und Möglichkeiten, die einem das Leben einfacher machen und die Abbildungen dann noch schöner. Nicht alles musst du in {ggplot} machen, manchmal geht es dann in PowerPoint dann doch schneller mal eben einen Text zu ergänzen. Sehe das hier deshalb als Ergänzung und meinen privaten Raum, den ich nutze um mir den Code zu merken. Viele der Probleme sind dann auch eher so Sachen, die du mit der Zeit als erstrebenswert empfinden magst.

15.4.1 Überschriften, Achsen und Legenden

Die Abbildungen einfach nur so machen ist eigentlich nur in einer reinen explorativen Datenanalyse sinnvoll. Sobald du die Abbildungen dann irgendwie veröffentlichen willst, dann sind die normalen Beschriftungen der Achsen in {ggplot} mit den Variablennamen nicht mehr schön. Wenn du dann mehr machen willst, also die Überschriften anpassen oder aber die Achsenbeschriftung ändern, dann gibt es hier global Hilfe im {ggplot} Manual.

  • Die Überschriften von Abbildungen können wir beliebig anpassen. Hier können wir die Funktion ggtitle() oder aber die Funktion labs() nutzen.
  • Die Achsenbeschriftung können wir in der Funktion labs() einfach ändern.
  • Die Legende können wir ebenfalls in labs() und dann in den entsprechenden scales-Funktionen anpassen. Hier musst du im Zweifel etwas probieren. Faktoren würde ich in den Daten über die Funktion factor() anpassen.
  • Die Farben können weitreichend angepasst werden. Weiter unten findest du dann noch verschiedene Farbpaletten. Wenn du deine Farben selber wählst, dann kann es manchmal etwas kunterbund aussehen.

In der folgenden Abbildung siehst du einmal einen veränderten Titel und Beschriftungen. Die Möglichkeiten sind nahezu unbegrenzt und sprengen auch hier den Rahmen. Die Webseite R Cookbook hat auch spezielle Hilfe für {ggplot}.

R Code [zeigen / verbergen]
ggplot(data = ggplot_tbl, aes(x = feeding, y = jump_length,
                              fill = feeding)) +
  geom_boxplot() +
  labs(title = "Frischgewicht in Abhängigkeit von der Behandlung",
       x = "Behandlung", y = "Frischgewicht in kg/ha") +
  scale_x_discrete(labels = c("Katze", "Hund")) +
  scale_fill_discrete(name = "Behandlung", labels = c("Katze", "Hund")) +
  theme_minimal() 
Abbildung 15.2— Beispielhafte Abbildung mit Titel und geänderter Achsenbeschrittung. [Zum Vergrößern anklicken]

15.4.2 Abbildungen abspeichern

Wenn du eine Abbildung abspeichern willst, dann musst du nur nach dem ggplot-Code die Funktion ggsave() setzen. Wie du im hier im Folgenden siehst, speichere ich die Abbildung der Boxplots der Hunde- und Katzenflöhe einmal in der Datei flea_dog_boxplot.png ab. Dabei wähle ich eine Breite width und eine Höhe height von jeweils 5. Du musst dann immer etwas spielen, je größer die Zahlen, desto größer die Abbildung und die Auflösung.

R Code [zeigen / verbergen]
ggplot(data = ggplot_tbl, 
       aes(x = feeding, y = jump_length)) +
  geom_boxplot() 

## Abspeichern des obigen ggplots  
ggsave("feeding_boxplot.png", width = 5, height = 5)

Wie immer hilft auch die Hilfeseite von ggsave() weiter, wenn es um mehr Optionen und Qualität der Abbildungen geht.

15.4.3 Mathematische Ausdrücke

Häufig wollen wir nicht nur einfache Achsenbeschriftungen haben, sondern auch irgendwie komplexere Einheiten wie Eisendüngergehalt im Boden in \([kg\, ha]^{-1}\) darstellen. Jetzt soll die Einheit auch in dieser Form mit in die Achsenbeschriftung. Wir können dafür zwei Wege wählen. Einmal über das R Paket {latex2exp} und die Funktion TeX() oder aber die Funktion expression(), wofür wir dann kein eigenes R Paket brauchen. Beide Wege haben Vor- und Nachteile. Wir gehen aber beide mal durch. Mehr Informationen durch das Tutorium Using latex2exp oder aber eben der Klassiker mit Plot math expression.

Wir können die Funktion expression() nutzen um uns mathematische Formeln zu bauen. Leider ist das Ganze etwas frickelig und auch ich brauche immer drei Anläufe, bis die Formel dann passt. Im Folgenden aber einmal zwei Beispiel für mathematische Formeln und Ausdrücke. Beachte, dass du jedes Leerzeichen durch eine Tilde ~ abbilden musst. Ich nutze die Funktion expression() sehr selten und nur wenn die Formel wirklich sehr einfach ist. Da wir aber schon mit eckigen Klammern Probleme kriegen und diese so nervig mit " einklammern müssen, nutze ich dann das Paket {latex2exp} was ich im Folgenden vorstellen werde.

Hier aber erstmal zwei Beispiele für eine Formel mit der Funktion expression(). Wenn du mehr über die Möglichkeiten wissen willst, dann schauen auch einmal auf die Hilfeseite von Plot math oder du googelst dir die Lösung wie ich früher zusammen.

R Code [zeigen / verbergen]
plot(expression(Eisendüngeform~und~-höhe~"[kg ha]"^-1), cex = 1.5, main = "")

R Code [zeigen / verbergen]
plot(expression(Fe-Gehalt~"["~mg%.%(kg~TM)^-1~"]"), cex = 1.5, main = "")

Für mich ausdrücklich einfacher geht es mit dem R Paket {latex2exp} und der Funktion TeX() sowie die Helferfunktion r"()". Ja, hier muss man dann noch eine andere Programmiersprache kennen, aber wie immer, du wirst nur schlauer. Die Informationen zur Matheumgebung in \(\LaTeX\) kommen dann nochmal extra zwischen zwei Dollarzeichen $. Ja, das ist etwas wirr für einen Anfänger, aber wir nutzen hier auch zwei Programmiersprachen zusammen. Zum einen \(\LaTeX\) um die Mathesymbole sauber darzustellen und dann R um die Abbildungen in ggplot() zu bauen. Mehr Informationen zu der Matheumgebung in \(\LaTeX\) findest du einmal in der LaTeX Mathehilfe I sowie der LaTeX Mathehilfe II.

Wie bauen wir uns also unseren mathematischen Ausdruck? Als erstes brauchen wir die Funktion Tex(), die sagt einfach nur aus, dass jetzt \(\LaTeX\)-Code kommt. Dann wollen wir noch einen String brauen in dem der \(\LaTeX\)-Code für unseren mathematischen Ausdruck drin steht. Diesen String bauen wir mit r"()". Achtung, hier ist das Gänsefüßchen oben und unten vor und nach der runden Klammer sehr wichtig. In den Ausdruck können wir dann Text schreiben Eisengehalt oder aber einen mathematischen Ausdruck abgrenzt von zwei Dollarzeichen $ wie $[kg\, ha]^{-1}$. \(\LaTeX\) kann nämlich nicht nur mathematische Ausdrücke sondern ist eigentlich ein Textverarbeitungsprogramm. Deshalb musst du hier nochmal zwischen Text und mathematischen Ausdruck unterscheiden.

Hier nochmal aufgeschlüsselt wie der Code aussieht. Wir schreiben den Code nachher in einer Zeile, aber zum Verständnis ist es besser, wenn wir den Code einmal aufgeklappt sehen.

R Code [zeigen / verbergen]
TeX(
    r"(
      Eisengehalt $[kg\, ha]^{-1}$
    )"
   )

Wir wollen uns das Ergebnis einmal in einem simplen plot() anschauen. Wir nutzen die Funktionalität natürlich später in ggplot, aber hier ist es so einmal einfacher zu sehen.

R Code [zeigen / verbergen]
plot(cex = 2, main = "",
  TeX(r"(
         Eisengehalt $[kg\, ha]^{-1}$
      )")
    )

Auch können wir sehr viel komplexere Formeln erstellen. Beachte auch hier, dass wir zwei Matheumgebungen in \(\LaTeX\) vorliegen haben.

R Code [zeigen / verbergen]
plot(cex = 2, main = "",
  TeX(r"(
         A $\LaTeX$ formula: $\frac{2hc^2}{\lambda^5}\frac{1}{e^{\frac{hc}{\lambda k_B T}} - 1}$
      )")
  )

In der Abbildung 15.3 dann nochmal die Anwendung in einem ggplot in dem wir die Achsen entsprechend beschriften und dann auch noch eine ausgedachte Regressionsgeleichung zu der Abbildung ergänzen.

R Code [zeigen / verbergen]
ggplot(data = ggplot_tbl, aes(x = weight, y = jump_length)) +
  geom_point() +
  stat_smooth(method = "lm", se = FALSE) +
  theme_minimal() +
  labs(x = TeX(r"(Eisengehalt und -höhe $[kg\, ha]^{-1}$)"), 
       y = TeX(r"(Fe-Gehalt $[mg \cdot (kg TM)^{-1}]$)")) +
  annotate("text", x = 10, y = 10,
           label = TeX(r"($y = \beta_0 + \beta_1 \cdot x;\; R^2 = 0.24$)"))
Abbildung 15.3— Zusammenhang zwischen dem Eisengehalt und -höhe im Boden und dem Eisengehalt in Salat. Zusätzlich ergänzt eine Regressiongleichung und ein ausgedachtes Bestimmtheitsmaß. [Zum Vergrößern anklicken]

Wenn du dann mal die Funktion Tex() in geom_text() verwenden willst, dann musst du einmal etwas anpassen. Dann klappt es aber auch hier. Das hat mich mal echt Nerven und Zeit gekostet, deshalb lagere ich die Information mal hier für mich.

R Code [zeigen / verbergen]
ggplot() +
  theme_void() +
  geom_text(aes(0, 0, 
                label = TeX(r'($\alpha  x^\alpha$, where $\alpha \in 1\ldots 5$)',
                                  output = "character")), parse = TRUE) 

15.4.4 Farbpaletten

Neben den klassischen Farben im R Paket {ggplot2} gibt es noch weit, weit mehr Farbpaletten. Wir nutzen in der Folge immer wieder die Okabe-Ito Farbpalette aus dem R Paket {see}. Die Okabe-Ito Farbpalette ist speziell so gebaut, dass die Farben sich gut für farbenblinde Personen unterscheiden. Mehr zum R Paket {see} auf der Hilfeseite des Paketes. Der Kontrast zwischen den Farben ist sehr gut. Wenn du eine andere Farbpalette nutzen willst, findest du hier noch andere Color Scales.

R Code [zeigen / verbergen]
ggplot(data = ggplot_tbl, 
       aes(x = feeding, y = jump_length,
           fill = feeding)) +
  geom_boxplot() +
  scale_fill_okabeito() +
  theme_minimal()
Abbildung 15.4— Beispielhafte Abbildung der Okabe-Ito Farbpalette für Boxplots. [Zum Vergrößern anklicken]
R Code [zeigen / verbergen]
ggplot(data = ggplot_tbl, 
       aes(x = feeding, y = jump_length,
           fill = feeding)) +
  geom_point() +
  scale_color_okabeito() +
  theme_minimal()
Abbildung 15.5— Beispielhafte Abbildung der Okabe-Ito Farbpalette für Punkte. [Zum Vergrößern anklicken]

Das Ganze geht dann auch händisch mit dem folgenden Code für die jeweiligen Farben. Anbei einmal die Farbpalette dargestellt.

Abbildung 15.6— Farbpalette nach dem Okabe-Ito-Schema ebenfalls für farbblinde Personen erstellt. [Zum Vergrößern anklicken]

Die Farben sind dann in der Reihenfolge wie folgt kodiert.

R Code [zeigen / verbergen]
cbbPalette <- c("#E69F00", "#56B4E9", "#009E73", 
                "#F0E442", "#0072B2", "#D55E00", 
                "#CC79A7", "#999999", "#000000")

Wenn wir Boxplots einfärben wollen dann nehmen wir den folgenden Code.

R Code [zeigen / verbergen]
scale_fill_manual(values = cbPalette)

Und das hier ist die Ergänzung für Punkte und Linien.

R Code [zeigen / verbergen]
scale_colour_manual(values = cbPalette)

Neben der Okabe-Ito Farbpalette liefert das R Paket {duke} noch eine andere Möglichkeit eine Farbpalette für Farbblinde zu generieren.

Abbildung 15.7— Farbpalette nach dem Duke-Schema ebenfalls für farbblinde Personen erstellt. [Zum Vergrößern anklicken]

Die Farben sind dann in der Reihenfolge wie folgt kodiert.

R Code [zeigen / verbergen]
dukePalette <- c("#012169", "#C84E00", "#00539B", "#339898", 
                 "#A1B70D", "#E89923", "#FFD960", "#262626")

Die Funktionen hier sind scale_duke_color_discrete() sowie scale_duke_continuous() und scale_duke_fill_discrete().

Manchmal benötigen wir auch Farbverläufe. In R heißen diese Farbverläufe dann Farbpaletten. Eine Einführung liefert das Tutorium Using RColorBrewer palettes. Ich selber nutze gerne das R Paket {wesanderson} welches sehr schöne Farbverläufe hat. Mehr kannst du auf der GitHub Seite Wes Anderson Palettes erfahren. Wir können die Paletten ganz einfach mit der Funktion wes_palette() laden.

R Code [zeigen / verbergen]
wes_palette("Zissou1")

Das schöne ist hier, dass wir einfach wie folgt Farbverläufe erstellen können. Wir wollen hier 21 Farbwerte haben und das Ganze dann als kontinuierlichen Verlauf.

R Code [zeigen / verbergen]
wes_palette("Zissou1", 21, type = "continuous")

15.4.5 Abbildungen nebeneinander

Das R Paket {patchwork} erlaubt es mehrere ggplot Abbildungen nebeneinander oder in einem beliebigen Layout miteinander zu verbinden. Das tolle ist, dass die Idee sehr intuitiv ist. Wir nutzen wieder das + um verschiedene Plots miteinander zu verbinden. Im Folgenden erschaffen wir uns zwei ggplots und speichern die Plots in den Objekten p1 und p2. Das ist wie wir es bisher kennen, nur das jetzt keine Abbildung erscheint sondern beide Plots in zwei Objekten gespeichert sind.

R Code [zeigen / verbergen]
p1 <- ggplot(data = ggplot_tbl, 
             aes(x = weight, y = jump_length,
                 color = feeding)) +
  geom_point() +
  scale_color_okabeito() +
  theme_minimal()

p2 <- ggplot(data = ggplot_tbl, 
                aes(x = feeding, y = jump_length,
                    color = feeding)) +
  geom_point() +
  scale_color_okabeito() +
  theme_minimal()

Wie können wir nun die beiden Abbildungen nebeneinander zeichnen? Wir nutzen einfach das + Symbol.

R Code [zeigen / verbergen]
p1 + p2
Abbildung 15.8— Beispielhafte Abbildung der zweier Plots nebeneinander. [Zum Vergrößern anklicken]

Auf der Seite des R Paket {patchwork} findest du viel mehr Möglichkeiten das Layout anzupassen und auch die einzelnen Subplots zu beschriften.

15.4.6 Schriftarten

Quick and easy ways to deal with long labels in ggplot2

Adding Custom Fonts to ggplot in R

Aesthetic specifications

Die Sache mit der Schriftart in {ggplot}.

15.4.7 Gebrochene \(y\)-Achse

Das R Paket {ggbreak} erlaubt es dir in die \(x\)-Achse oder aber \(y\)-Achse Lücken einzusetzen oder aber die Achsen eben gebrochen darzustellen. Zur Demonstration bauen wir uns nochmal den stat_tbl für die Hunde- und Katzenflöhe. Wir berechnen hier dann die Mittelwerte und nicht mehr die Standardabweichung, da es sonst nicht so gut mit der Darstellung mit der gebrochenen \(y\)-Achse für dieses Beispiel klappt.

R Code [zeigen / verbergen]
stat_tbl <- ggplot_tbl |> 
  group_by(feeding) |> 
  summarise(mean = mean(jump_length))

In der Abbildung 15.9 siehst du einmal die Abbildung der Mittelwerte der Sprungweiten der Hunde- und Katzenflöhe als Barplots dargestellt. Ich habe hier einen Bruch auf der \(y\)-Achse mit der Funktion scale_y_break() bei 1 bis 4 eingefügt und den Abstand über die Option space etwas visuell vergrößert. Mit der Option scales könntest du dann noch die Skalierung der gebrochenen \(y\)-Achse anpassen.

R Code [zeigen / verbergen]
ggplot(stat_tbl, aes(x = feeding, y = mean, fill = feeding)) + 
  theme_minimal() +
  geom_bar(stat = "identity") +
  scale_y_break(c(10, 60), space = 0.5)
Abbildung 15.9— Beispielhafte Abbildung der Barplots mit gebrochener \(y\)-Achse. Die Fehlerbalken wurden aus Gründen der besseren Darstellung der zerbrochenen \(y\)-Achse entfernt. [Zum Vergrößern anklicken]

15.5 R Pakete von Interesse

TippWoher habe ich alle Pakete her?

Wenn es einen Link zu einer Seite gibt, den ich immer mal wieder Besuche, ist es der folgende Link: ggplot2 extensions. Du erfährst hier eine Menge neues an Paketen und es gibt immer wieder spannendes zu entdecken. Ein Besuch lohnt sich auf jeden Fall.

15.5.1 {ggrepel}

Getting started with {ggrepel} {ggtext}: Improved text rendering support for ggplot2

R Code [zeigen / verbergen]
update_geom_defaults("label", 
                     list(family = "IBM Plex Sans Condensed"))
update_geom_defaults(ggtext::GeomRichText, 
                     list(family = "IBM Plex Sans Condensed"))
update_geom_defaults("label_repel", 
                     list(family = "IBM Plex Sans Condensed"))
R Code [zeigen / verbergen]
ggplot(tibble(x = 1:3, y = 1:3), aes(x,y)) +
  theme_minimal(base_family = "IBM Plex Sans Condensed") +
  geom_point() +
  labs(x = "Hallo", y = "Mehr zesz")

https://statisticaloddsandends.wordpress.com/2021/07/08/using-different-fonts-with-ggplot2/ https://www.r-bloggers.com/2019/03/adding-custom-fonts-to-ggplot-in-r/ https://stackoverflow.com/questions/34522732/changing-fonts-in-ggplot2 https://ggplot2.tidyverse.org/articles/ggplot2-specs.html

15.5.2 {gganimate}

Datanovia

Cheat sheet {gganimate}

15.5.3 {ggpp}

{ggpp}

15.5.4 {ggh4x}

{ggh4x}

15.5.5 {ggsignif}

{ggsignif}

15.5.6 {ggpmisc}

{ggpmisc}

15.5.7 {patchwork}

{patchwork}

R Code [zeigen / verbergen]
p1 + p2 +
  plot_layout(ncol = 2) +
  plot_annotation(tag_levels = 'A', tag_prefix = '(', tag_suffix = ')') &
  theme(plot.tag = element_text(size = 16, face = "bold"))

15.5.8 {tidyplots}

R Code [zeigen / verbergen]
ggplot_tbl |> 
  tidyplot(x = feeding, y = jump_length, color = feeding) |> 
  theme_minimal_y() |> 
  add_data_points() |> 
  add_mean_bar(alpha = 0.4) |> 
  add_sd_errorbar() |> 
  remove_legend() |> 
  adjust_size(height = NA, width = NA)
Abbildung 15.10— Beispielhafter zweifaktorieller Barplot für die Sprungweiten in [cm] gruppiert nach den Floharten und den beiden Geschlechtern.

{tidyplots}

Get started

Use cases

tidyplots cheatsheet

Engler (2025)

TippMehr Pakete von Interesse

Manchmal finde ich irgendwo ein R Paket und denke, dass könnte von Interesse sein und irgendwie dann doch mit in Visualisierung passen. Daher schreibe ich mir das Paket erstmal hier auf und schaue später mal vorbei. Es sind eben dann auch Daten dabei, die man mal visualisieren könnte.

Nr. Link Beschreibung
1. R Paket {collapse}
2. R Paket {ggdist}
3. Das R Paket {visibly} auf An Introduction to Visibly
4. R Paket {innsight}
5. R Paket {snakecase}
6. R Paket {visdat}
7. R Paket {vroom}
8. R Paket {gt}
9. R Paket {gapminder} von Gapminder

Diese Liste kann natürlich beliebig erweitert werden. Für mich ist es dann ein ewiger Arbeitsauftrag mich mal mit dieser Liste zu beschäftigen.

Referenzen

Engler, J. B. (2025). Tidyplots empowers life scientists with easy code-based data visualization. iMeta, 4(2), e70018.
Wickham, H., & Grolemund, G. (2016). R for data science: import, tidy, transform, visualize, and model data. O’Reilly Media, Inc.