GGPLOT Échelle Logarithmique



GGPLOT Échelle Logarithmique

Cet article décrit comment créer un ggplot avec une échelle logarithmique. Ceci peut être fait facilement en utilisant les fonctions ggplot2 scale_x_continuous() et scale_y_continuous(), qui permettent de définir l’échelle des axes en log2 ou log10. Une autre possibilité est la fonction scale_x_log10() et scale_y_log10(), qui transforme, respectivement, les échelles des axes x et y en une échelle log : base 10.

Notez que, les fonctions scale transforment les données. Si vous calculez quoi que ce soit sur les données, cela changerait probablement les valeurs calculées.

Une alternative est d’utiliser la fonction coord_trans() pour le système de coordonnées cartésiennes transformé. coord_trans() est différent des transformations d’échelle en ce qu’il se produit après une transformation statistique et n’affectera que l’apparence visuelle des geoms.

Dans ce tutoriel graphique R, vous apprendrez à:

  • Transformer les axes x et y à l’échelle log2 ou log10
  • Afficher l’exposant après les changements logarithmiques en formatant le texte des graduations des axes.
  • Afficher les graduations logarithmiques. Fonction R : annotation_logticks()


Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

Fonctions clés de ggplot2

Commencez par créer un nuage de points à l’aide du jeu de données cars:

library(ggplot2)
p <- ggplot(cars, aes(x = speed, y = dist)) + 
  geom_point()
p

Fonctions R pour définir un axe logarithmique:

  • p + scale_x_log10(), p + scale_y_log10(): Dessine respectivement les axes x et y dans l’échelle log 10.
  • p + coord_trans(x = “log2”, y = “log2”) : Système de coordonnées cartésiennes transformé. Les valeurs possibles pour x et y sont “log2”, “log10”, “sqrt”, ..
  • p + scale_x_continuous(trans = “log2”), p + scale_y_continuous(trans = “log2”). Valeur autorisée pour l’argument trans, inclut aussi log10.
  • p + scale_y_log10() + annotation_logticks() : Afficher les grauations à l’échelle logarithmique.

Mettre l’axe à l’échelle log2

  • Transformation Log2 des axes x et y
  • Formatez le texte des graduations pour afficher les exposants
# Valeurs possibles pour `trans`:'log2','log10','sqrt'
p + scale_x_continuous(trans = 'log2') +
  scale_y_continuous(trans = 'log2')

# Formatez le texte l'axe des y pour afficher les exposants
require(scales)
p + scale_y_continuous(trans = log2_trans(),
    breaks = trans_breaks("log2", function(x) 2^x),
    labels = trans_format("log2", math_format(2^.x)))

Mettre l’axe à l’échelle log10

Le code R suivant transforme l’échelle de l’axe des y à l’échelle log10 à l’aide de la fonction scale_y_log10():

p + scale_y_log10()

Alternativement, vous pouvez utiliser la fonction scale_y_continuous(), qui permet de transformer les graduations et le format des étiquettes.

p + scale_y_continuous(trans = "log10")

Afficher les graduations logarithmiques

Notez que les graduations logarithmiques n’ont de sens que pour le log base 10.

Fonction clé: annotation_logticks() Data: Animals data sets, from the package MASS

  1. Créez un graphe log-log sans graduation logarithmique:
# Charger les packages
require(MASS) # pour accéder au jeu de données `Animals`
require(scales) # pour accéder aux fonctions de formatage des graduations
data(Animals) # charger les données

# les axes x et y sont transformés et formatés
p2 <- ggplot(Animals, aes(x = body, y = brain)) + geom_point() +
     scale_x_log10(breaks = trans_breaks("log10", function(x) 10^x),
              labels = trans_format("log10", math_format(10^.x))) +
     scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
              labels = trans_format("log10", math_format(10^.x))) +
     theme_bw() 
p2

  1. Afficher les graduations de l’échelle logarithmique:
p2 + annotation_logticks()  

Notez que les graduations par défaut sont en bas et à gauche. Pour spécifier les côtés des graduations log :

# Graduations logarithmiques à gauche et à droite
p2 + annotation_logticks(sides="lr")

# Tous les côtés
p2+annotation_logticks(sides="trbl")

Les valeurs autorisées pour l’argument sides sont la combinaison de “t” (top, haut), “r” (right, droite), “b” (bottom, bas), “l” (left, gauche).

Conclusion

Nous expliquons comment créer un ggplot avec une échelle logarithmique. Brièvement, les étapes sont les suivantes:

  • Créer un exemple de ggplot:
library(ggplot2)
p <- ggplot(cars, aes(x = speed, y = dist)) + 
  geom_point()
  • Transformation logarithmique de l’échelle des axes:
 # échelle log base 2
p + scale_x_continuous(trans = 'log2') +
  scale_y_continuous(trans = 'log2')

# Echelle log base 10 + graduations log (à gauche et en bas)
p + scale_x_continuous(trans = 'log10') + 
  scale_y_continuous(trans = 'log10')+
  annotation_logticks(sides="lb")



Version: English





Comment ( 1 )

  • Felmaks

    Very useful
    Thank you very much

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments