So erstellen sie eine logarithmische skala in ggplot2


Häufig möchten Sie möglicherweise den Maßstab der x- oder y-Achse eines ggplot2-Diagramms in einen logarithmischen Maßstab umwandeln.

Sie können dazu eine von zwei Methoden verwenden, indem Sie nur ggplot2 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 koordiniert_trans()

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

Wenn Sie die Achsenbeschriftungen so formatieren möchten, dass Exponenten angezeigt werden, können Sie die Funktionen im 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, wie Sie diese Funktionen in der Praxis nutzen können.

Beispiel 1: Logarithmische Skalierung mit scale_y_continuous()

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

 library (ggplot2)

#create data frame
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))

#create scatterplot with log scale on y-axis
ggplot(df, aes (x=x, y=y)) +
  geom_point() +
  scale_y_continuous(trans=' log10 ')

Logarithmische Skala auf der Y-Achse von ggplot2

Beispiel 2: Logarithmische Skalierung mit coord_trans()

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

 library (ggplot2)

#create data frame
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))

#create scatterplot with log scale on y-axis
ggplot(df, aes (x=x, y=y)) +
  geom_point() +
  coord_trans(y=' log10 ') 

Logarithmische Skala ggplot2

Beispiel 3: Benutzerdefinierte logarithmische Skalenbeschriftungen

Der folgende Code zeigt, wie Funktionen im Paket „scales“ verwendet werden, um eine logarithmische Skala für die y-Achse eines Streudiagramms zu erstellen und benutzerdefinierte Beschriftungen mit Exponenten hinzuzufügen:

 library (ggplot2)
library (scales)

#create data frame
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))

#create scatterplot with log scale on y-axis and custom labels
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))) 

Logarithmische Skala mit Exponenten in ggplot2

Beachten Sie, dass die Y-Achsenbeschriftungen im Gegensatz zu den beiden vorherigen Diagrammen Exponenten haben.

Zusätzliche Ressourcen

Die vollständige Anleitung zu ggplot2-Titeln
Eine vollständige Anleitung zu den besten ggplot2-Themen
So erstellen Sie nebeneinander liegende Diagramme in ggplot2

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert