So erstellen Sie eine Log-Skala in ggplot2

Von Fabian
Kategorie: R
Tags: ggplot2
Lesezeit: 2 Minuten

Oft möchten Sie möglicherweise die x- oder y-Achsenskala eines ggplot2-Diagramms in eine Log-Skala konvertieren.

Sie können eine der folgenden beiden Methoden verwenden, um nur ggplot2 zu verwenden:

1. Verwenden Sie scale_y_continuous() oder scale_x_continuous()

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  scale_y_continuous(trans='log10') +
  scale_x_continuous(trans='log10')

2. Verwenden Sie coord_trans()

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  coord_trans(y ='log10', x='log10')

Wenn Sie möchten, dass die Achsenbeschriftungen so formatieren möchten, dass sie die Exponenten zu zeigen, können Sie Funktionen aus dem scales-Paket verwenden:

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  scale_y_continuous(trans='log10',
                     breaks=trans_breaks('log10', function(x) 10^x),
                     labels=trans_format('log10', math_format(10^.x)))

Dieses Tutorial zeigt Beispiele für die praktische Verwendung dieser Funktionen.

Beispiel 1: Log-Skala mit scale_y_continuous()

Der folgende Code zeigt, wie Sie mit der Funktion scale_y_continuous() eine Log-Skala für die y-Achse eines Streudiagramms erstellen:

library(ggplot2)

# Dataframe erstellen
df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18),
                 y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000))

# Streudiagramm mit Log-Skala auf der y-Achse erstellen
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  scale_y_continuous(trans='log10')

Log-Skala auf der y-Achse von ggplot2

Beispiel 2: Log-Skala mit coord_trans()

Der folgende Code zeigt, wie Sie mit der Funktion coord_trans() eine Log-Skala für die y-Achse eines Streudiagramms erstellen:

library(ggplot2)

# Dataframe erstellen
df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18),
                 y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000))

# Streudiagramm mit Log-Skala auf der y-Achse erstellen
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  coord_trans(y='log10')

Log-Skala ggplot2

Beispiel 3: Benutzerdefinierte Log-Skala-Beschriftungen

Die folgende Code zeigt, wie man Funktionen verwendet aus dem scales Paket verwendent, um eine logarithmische Skala für die y-Achse eines Streudiagramm zu erstellen:

library(ggplot2)
library(scales)

# Dataframe erstellen
df <- data.frame(x=c(2, 5, 6, 7, 9, 13, 14, 16, 18),
                 y=c(1400, 1700, 2300, 2500, 2800, 2900, 3400, 3900, 11000))

# Streudiagramm mit Log-Skala auf der y-Achse und benutzerdefinierten Beschriftungen erstellen
ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  scale_y_continuous(trans='log10',
                     breaks=trans_breaks('log10', function(x) 10^x),
                     labels=trans_format('log10', math_format(10^.x)))

Log-Skala mit Exponenten in ggplot2

Beachten Sie, dass die Beschriftungen der y-Achse im Gegensatz zu den beiden vorherigen Darstellungen Exponenten haben.

Zusätzliche Ressourcen

Eine vollständige Anleitung zu den besten ggplot2-Themen
Erstellen von Side-by-Side-Plots in ggplot2

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: