Hoe een logaritmische schaal te creëren in ggplot2


Vaak wilt u misschien de schaal van de x-as of y-as van een ggplot2-plot omzetten naar een logaritmische schaal.

U kunt hiervoor een van de volgende twee methoden gebruiken, waarbij u alleen ggplot2 gebruikt:

1. Gebruik scale_y_continuous() of scale_x_continuous()

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

2. Gebruik coördinaat_trans()

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

Als u de aslabels wilt opmaken om exponenten weer te geven, kunt u de functies in het schalenpakket gebruiken:

 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)))

Deze tutorial toont voorbeelden van hoe u deze functies in de praktijk kunt gebruiken.

Voorbeeld 1: Logaritmische schaal met scale_y_continuous()

De volgende code laat zien hoe u de functie scale_y_continuous() gebruikt om een logaritmische schaal te maken voor de y-as van een spreidingsdiagram:

 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 ')

Logaritmische schaal op de y-as van ggplot2

Voorbeeld 2: logaritmische schaal met behulp van coord_trans()

De volgende code laat zien hoe u de functie coord_trans() gebruikt om een logaritmische schaal te maken voor de y-as van een spreidingsdiagram:

 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 ') 

Logaritmische schaal ggplot2

Voorbeeld 3: Aangepaste logaritmische schaallabels

De volgende code laat zien hoe u functies in het scales- pakket kunt gebruiken om een logaritmische schaal te maken voor de y-as van een spreidingsdiagram en aangepaste labels met exponenten toe te voegen:

 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))) 

Logaritmische schaal met exponenten in ggplot2

Merk op dat de labels op de Y-as exponenten hebben, in tegenstelling tot de vorige twee grafieken.

Aanvullende bronnen

De complete gids voor ggplot2-titels
Een complete gids voor de beste ggplot2-thema’s
Hoe zij-aan-zij-plots te maken in ggplot2

Einen Kommentar hinzufügen

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