Skip to content

R ggplot2 Schnellstart: Schnelle Rezepte für verlässliche Diagramme

Problem

Analysten haben Schwierigkeiten, unter Zeitdruck konsistente R‑Diagramme zu erstellen. Der ständige Wechsel zwischen Geoms, Scales und Themes ohne Vorlage führt zu unruhigen Visualisierungen und wiederholten Korrekturen.

Agitation

Falsch zugeordnete Aesthetics, vergessene Legenden und nicht passende Farbskalen erzeugen Diagramme, die Stakeholder in die Irre führen. Zeit geht dabei verloren, Standardwerte zu tweaken, statt sich auf das eigentliche Signal zu konzentrieren.

Lösung

Verwenden Sie einen kompakten Satz von ggplot2‑Rezepten, die Aesthetics explizit halten, Mappings von festen Einstellungen trennen und ein aufgeräumtes Theme verwenden. Die folgenden Muster decken die am häufigsten benötigten Plot‑Typen ab und zeigen, wie man Facets für Vergleiche einsetzt.

Scatter: Zusammenhänge und Trendlinien

library(ggplot2)
 
ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
  geom_point(size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = FALSE, linewidth = 0.8) +
  labs(color = "Cylinders", x = "Weight", y = "MPG") +
  theme_minimal()

Line: Zeitreihen oder geordnete Kategorien

ggplot(economics, aes(x = date, y = unemploy)) +
  geom_line(color = "#1f77b4", linewidth = 1) +
  labs(x = "Date", y = "Unemployment") +
  scale_x_date(date_breaks = "2 years", date_labels = "%Y") +
  theme_minimal()

Bar: Häufigkeiten oder Summen

ggplot(diamonds, aes(x = cut, fill = cut)) +
  geom_bar(width = 0.7, color = "white") +
  labs(x = "Cut", y = "Count") +
  theme_minimal() +
  theme(legend.position = "none")

Box und Violin: Verteilungsvergleiche

ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_violin(alpha = 0.4, color = NA) +
  geom_boxplot(width = 0.18, outlier.shape = NA, alpha = 0.8) +
  labs(x = NULL, y = "Sepal Length") +
  theme_minimal() +
  theme(legend.position = "none")

Facets für schnelle Vergleiche

ggplot(diamonds, aes(carat, price, color = cut)) +
  geom_point(alpha = 0.4, size = 1.5) +
  facet_wrap(~ color) +
  labs(x = "Carat", y = "Price") +
  theme_light()

Geoms und beste Einsatzszenarien

GeomDatentypAm besten geeignet fürTipp
geom_point()numerisch vs. numerischZusammenhänge, ClusterFarbe/Form auf Kategorien mappen; geom_smooth() für Trends ergänzen.
geom_line()geordnetes x, numerisches yZeitreihen, SequenzenEine Linie pro Gruppe mit group=; Sortierfehler vermeiden.
geom_bar() (Count) / geom_col() (vorausaggregiert)kategorialHäufigkeiten oder Summenposition = "fill" für Prozentsätze verwenden.
geom_boxplot()kategorial vs. numerischVergleich von Median/IQRMit coord_flip() für lange Labels kombinieren.
geom_violin()kategorial vs. numerischVerteilungsformMit Boxplots kombinieren, um Quartile zu zeigen.
geom_histogram()einzelne numerische VariableVerteilungbins oder binwidth explizit setzen.

Aesthetics vs. feste Einstellungen

  • Daten innerhalb von aes() mappen: aes(color = species).
  • Feste Werte außerhalb von aes() setzen: geom_point(color = "steelblue").
  • scale_*‑Funktionen verwenden, um Werte zu formatieren und Paletten zu steuern.

Theme‑ und Beschriftungs‑Checkliste

  • Mit theme_minimal() oder theme_light() für saubere Defaults starten.
  • Mit labs(title, subtitle, caption) Kontext hinzufügen; Achsentexte kurz halten.
  • Redundante Legenden mit theme(legend.position = "none") ausblenden, wenn Farben Facets oder Labels duplizieren.
  • Für Veröffentlichungen Schriftgrößen über theme(text = element_text(size = 12)) anpassen.

Startvorlage

base_plot <- ggplot(data, aes(x = x_var, y = y_var)) +
  geom_point(color = "#4e79a7", alpha = 0.7) +
  labs(
    title = "Headline metric",
    x = "X axis",
    y = "Y axis",
    caption = "Source: internal data"
  ) +
  theme_minimal()

Verwandte Guides