Aller au contenu

Axes logarithmiques avec pgfplots

Remplacez axis par semilogyaxis (y logarithmique), semilogxaxis (x logarithmique) ou loglogaxis (les deux), ou définissez ymode=log ou xmode=log sur un axis normal.

Une échelle logarithmique sur l’axe y

Les valeurs qui croissent par facteurs, comme des effectifs, des erreurs ou des fréquences, se lisent mieux sur une échelle logarithmique. semilogyaxis garde x linéaire et rend y logarithmique. Les graduations se placent aux puissances de dix et sont étiquetées $10^k$.

Croissance exponentielle sur un axe y logarithmique

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{tikzpicture}
  \begin{semilogyaxis}[xlabel={Day}, ylabel={Cells}, grid=major]
    \addplot coordinates {(0,44) (1,120) (2,350) (3,980) (4,2700) (5,7600) (6,21000)};
  \end{semilogyaxis}
\end{tikzpicture}

Une droite sur ce graphique signifie une croissance constante du même facteur à chaque pas.

Les deux axes logarithmiques

loglogaxis rend les deux axes logarithmiques. Une loi de puissance comme $y = x^2$ devient une droite dont la pente est l’exposant.

Lois de puissance sur un graphique log-log

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{tikzpicture}
  \begin{loglogaxis}[xlabel=$n$, ylabel={Time (s)}, legend pos=north west]
    \addplot coordinates {(10,0.001) (100,0.01) (1000,0.1) (10000,1)};
    \addplot coordinates {(10,0.0001) (100,0.01) (1000,1) (10000,100)};
    \legend{$O(n)$, $O(n^2)$}
  \end{loglogaxis}
\end{tikzpicture}
Composé par Scissor LaTeX: Lois de puissance sur un graphique log-log

La même chose avec xmode et ymode

xmode=log et ymode=log donnent une échelle logarithmique à un axis normal. C’est pratique lorsque le choix est fait par un style, ou dans un groupe de graphiques.

xmode=log sur un axe normal

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{tikzpicture}
  \begin{axis}[xmode=log, xlabel={Frequency (Hz)}, ylabel={Gain (dB)}, ymin=-30, ymax=5]
    \addplot[blue, thick, domain=1:5, samples=60, variable=t]
      ({10^t}, {-10*log10(1 + (10^t/1000)^2)});
  \end{axis}
\end{tikzpicture}
Composé par Scissor LaTeX: xmode=log sur un axe normal

Les formules fonctionnent aussi sur les axes logarithmiques, mais domain et samples sont en unités de données : les points sont répartis uniformément entre les deux bornes, si bien que sur un axe logarithmique presque tous tombent dans la dernière décade. L’exemple trace donc une courbe paramétrée en fonction de l’exposant t, de $10^1$ à $10^5$, ce qui répartit les points uniformément le long de l’axe logarithmique. pgfplots se comporte de la même façon.

Une autre base

log basis y=2 (ou log basis x) change la base. Les graduations se placent alors aux puissances de 2 et sont étiquetées $2^k$.

Base 2 sur l’axe y

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{tikzpicture}
  \begin{semilogyaxis}[log basis y=2, xlabel={Doublings}, ymin=1, ymax=64]
    \addplot coordinates {(0,1) (1,2) (2,4) (3,8) (4,16) (5,32)};
  \end{semilogyaxis}
\end{tikzpicture}

Options sur les axes logarithmiques

OptionDans Scissor LaTeXRemarques
semilogxaxis, semilogyaxis, loglogaxisFonctionne
xmode=log, ymode=logFonctionne
log basis x=b, log basis y=bFonctionne
ymin, ymax sur un axe logarithmiqueFonctionneDonnez des valeurs positives.
log ticks with fixed pointNon pris en chargeIgnorée avec un message ; les étiquettes restent des puissances.
ybar stacked sur un axe logarithmiqueNon pris en chargeLes barres sont dessinées les unes sur les autres, sans être empilées, et aucun message n’est affiché.
valeurs nulles ou négativesSuppriméesLes points impossibles à afficher sur une échelle logarithmique sont omis, avec un message.

Ce qui diffère d’une installation TeX

Voir diagrammes en barres pour les barres sur des axes linéaires, et le manuel de pgfplots pour toutes les options : ctan.org/pkg/pgfplots.

Voir aussi Courbes, Groupes de graphiques et Contours et cartes de chaleur.

Questions et réponses

Comment rendre l’axe y logarithmique dans pgfplots ?

Utilisez \begin{semilogyaxis} ... \end{semilogyaxis} au lieu de axis, ou ajoutez ymode=log aux options de l’axe.

Pourquoi mon graphique logarithmique n’affiche-t-il aucune donnée ?

Un axe logarithmique ne peut pas afficher de valeurs nulles ou négatives. Les points concernés sont supprimés, et l’onglet Problèmes le signale. Décalez les données ou utilisez un axe linéaire.

Puis-je utiliser la base 2 ou la base e ?

Oui, avec log basis y=2 (ou tout nombre positif, par exemple log basis x=2.71828).

Chaque exemple de cette page est composé par Scissor LaTeX lors de la génération du site. Dernière mise à jour : 2026-11-07.