\usepackage{pgfplots}

pgfplots Graphiques et courbes en LaTeX

Créez des graphiques de qualité publication directement dans vos documents LaTeX avec pgfplots. Des courbes de fonctions simples aux figures multi-panneaux complexes avec des nuages de points.

Guide TikZ

Premiers pas

Ajoutez \usepackage{pgfplots} à votre préambule et définissez le niveau de compatibilité avec \pgfplotsset{compat=1.18} . Enveloppez ensuite votre graphique dans un environnement tikzpicture et un environnement axis. Options clés expliquées :

  • title—Texte affiché au-dessus du cadre du graphique
  • xlabel / ylabel—Étiquettes des axes ; le mode mathématique est pris en charge
  • grid—major, minor ou both — trace des lignes de grille aux graduations
  • domain=a:b—L'intervalle x sur lequel la fonction est évaluée
  • samples—Nombre de points d'évaluation — plus il est élevé, plus la courbe est lisse
  • \addplot[opts] {expr};—Trace une courbe ; les options incluent color, thick, dashed
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    title={$f(x) = x^{2}$},
    xlabel={$x$},
    ylabel={$f(x)$},
    grid=major,
    width=8cm,
    height=6cm,
  ]
    \addplot[blue, thick, domain=-3:3, samples=100] {x^2};
  \end{axis}
\end{tikzpicture}

\end{document}

Options de l'environnement axis

Toutes les options sont passées entre les crochets de la commande \begin{axis}[…]. Elles peuvent être combinées librement.

OptionTypeDescription
titlestringTitre affiché au-dessus du cadre de l'axe.
xlabel / ylabelstringÉtiquettes des axes x et y ; le mode mathématique est pris en charge.
xmin / xmaxnumberBornes inférieure et supérieure explicites de l'axe x.
gridmajor | minor | bothTrace des lignes de grille aux graduations principales, secondaires, ou aux deux.
xticklistPositions explicites des graduations sous forme de liste séparée par des virgules.
xticklabelslistÉtiquettes personnalisées pour chaque graduation ; les entrées en mode mathématique sont prises en charge.
width / heightlengthPhysical size of the axis box, e.g. 10cm or 0.8\textwidth.
legend poskeywordPosition de la légende : north east, south west, outer north east, etc.

Plusieurs courbes et légendes

Ajoutez plusieurs commandes \addplot dans le même environnement axis pour superposer des courbes. Faites suivre chacune de \addlegendentry{label} pour remplir automatiquement la légende. L'option legend pos contrôle l'emplacement : utilisez outer north east pour placer la légende en dehors du cadre de l'axe et éviter qu'elle ne chevauche vos données.

Les étiquettes de graduation personnalisées avec xticklabels acceptent des fractions en mode mathématique comme $\frac{\pi}{2}$. L'option minor tick num=1 insère une graduation secondaire entre chaque paire de graduations principales.

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    title={Trigonometric Functions},
    xlabel={$x$ (radians)},
    ylabel={$y$},
    xmin=0, xmax=6.2832,
    ymin=-1.3, ymax=1.3,
    xtick={0,1.5708,3.1416,4.7124,6.2832},
    xticklabels={$0$, $\frac{\pi}{2}$, $\pi$, $\frac{3\pi}{2}$, $2\pi$},
    grid=both,
    minor tick num=1,
    legend pos=outer north east,
    width=10cm,
    height=6cm,
  ]
    \addplot[blue, thick, domain=0:6.2832, samples=200] {sin(deg(x))};
    \addlegendentry{$\sin(x)$}
    \addplot[red,  thick, domain=0:6.2832, samples=200] {cos(deg(x))};
    \addlegendentry{$\cos(x)$}
  \end{axis}
\end{tikzpicture}

\end{document}

Types de courbes

pgfplots prend en charge plusieurs gestionnaires de courbes via la commande \addplot. Le gestionnaire est sélectionné par les options du graphique ou la syntaxe des coordonnées.

Courbe de fonction

Tracez n'importe quelle expression mathématique sur un intervalle avec domain et samples.

\addplot[color, thick, domain=a:b] {expr};

Nuage de points / coordonnées

Tracez des points de données discrets fournis directement dans le fichier source.

\addplot[only marks] coordinates { (x1,y1) (x2,y2) };

Diagramme en barres

Diagramme en barres verticales avec le gestionnaire de courbes ybar et des paires de coordonnées.

\addplot[ybar] coordinates { (1,3) (2,5) (3,2) };

Depuis un fichier

Chargez des données tabulaires depuis un fichier CSV externe ou un fichier délimité par des espaces.

\addplot table {data.csv};

Personnaliser les styles d'axe

Trois ajustements de style courants qui donnent un rendu soigné aux graphiques dans les documents académiques.

Palette de couleurs

Appliquez une palette de couleurs pgfplots à un graphique de surface ou de nuage de points en ajoutant colormap/cool comme option d'axe.

colormap/cool

Taille de police

Mettez à l'échelle les étiquettes de graduation indépendamment de la police du document avec tick label style={font=\small} dans les options de l'axe.

tick label style={font=\small}

Style de grille

Personnalisez l'apparence des lignes de grille en définissant grid style={dashed, gray!40} dans les options de l'axe.

grid style={dashed, gray!40}

Plusieurs sous-figures

Pour placer deux graphiques ou plus côte à côte dans une même figure, combinez pgfplots avec le paquet subcaption. Chaque graphique se trouve dans un environnement subfigure. Définissez width=\linewidth dans les options de l'axe pour que chaque graphique remplisse sa colonne. Utilisez \hfill entre les sous-figures pour répartir l'espace horizontal uniformément.

La commande \caption extérieure de l'environnement figure fournit la légende générale, tandis que chaque subfigure reçoit automatiquement sa propre sous-légende étiquetée (a), (b), etc.

\documentclass{article}
\usepackage{pgfplots}
\usepackage{subcaption}
\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}[htbp]
  \centering
  \begin{subfigure}{0.48\textwidth}
    \begin{tikzpicture}
      \begin{axis}[width=\linewidth, title={$\sin(x)$}, grid=major]
        \addplot[blue, thick, domain=0:6.2832, samples=100] {sin(deg(x))};
      \end{axis}
    \end{tikzpicture}
    \caption{Sine function}
  \end{subfigure}
  \hfill
  \begin{subfigure}{0.48\textwidth}
    \begin{tikzpicture}
      \begin{axis}[width=\linewidth, title={$\cos(x)$}, grid=major]
        \addplot[red, thick, domain=0:6.2832, samples=100] {cos(deg(x))};
      \end{axis}
    \end{tikzpicture}
    \caption{Cosine function}
  \end{subfigure}
  \caption{Trigonometric functions side by side}
\end{figure}

\end{document}

Essayer la courbe sinusoïdale

Ouvrez un exemple de courbe sinusoïdale prêt à compiler directement dans le playground FormaTeX. Modifiez-le en direct et téléchargez le PDF, sans installation.

Foire aux questions

Compilez votre diagramme pgfplots

FormaTeX compile votre LaTeX dans le cloud, sans installation TeX locale. Inscrivez-vous gratuitement et commencez à tracer en quelques secondes.