Sarmate.net Sarmate.net
Accueil Fonctionnalités Offres Documentation Contact
Connexion Inscription

Tutoriel TikZ pour débutants

TikZ est la bibliothèque LaTeX qui permet de dessiner des figures, des graphes, des schémas directement dans votre document, sans logiciel externe. Ce tutoriel couvre les bases — assez pour réaliser 90 % des figures dont vous aurez besoin. Chaque exemple est compilable directement dans votre navigateur : cliquez sur « Voir dans la démo » pour voir le résultat instantanément, sans installer LaTeX.

Vous découvrez TikZ ? Commencez aussi par parcourir notre galerie de 300+ figures TikZ pour voir ce qui est possible. Cliquez sur n'importe quelle figure pour en voir le code.

Qu'est-ce que TikZ ?

TikZ (acronyme récursif : « TikZ ist kein Zeichenprogramm » — TikZ n'est pas un programme de dessin) est une bibliothèque de dessin vectoriel pour LaTeX. Elle est construite sur le langage PGF et offre une syntaxe plus accessible.

Concrètement : vous décrivez votre figure avec des commandes textuelles (par exemple \draw (0,0) -- (1,1) pour tracer un trait), et TikZ la rend en PDF de qualité professionnelle. Idéal pour les schémas mathématiques, les diagrammes scientifiques, les organigrammes, et tout ce qui demande de la précision.

Pour utiliser TikZ, il suffit d'inclure deux lignes dans le préambule de votre document :

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  % Vos commandes TikZ ici
\end{tikzpicture}

\end{document}

Toutes les commandes de dessin doivent être écrites entre \begin{tikzpicture} et \end{tikzpicture}. C'est cet environnement qui définit la zone de dessin.

Premier dessin : une ligne

La commande de base de TikZ est \draw (« dessiner »). Pour tracer un trait, on indique deux points reliés par --.

Les coordonnées sont données entre parenthèses sous la forme (x,y), où la valeur par défaut est en centimètres. (0,0) est l'origine, (3,2) est un point situé 3 cm à droite et 2 cm au-dessus.

\begin{tikzpicture}
  \draw (0,0) -- (3,2);
\end{tikzpicture}
Aperçu : Premier dessin : une ligne

Coordonnées et points

Pour bien comprendre où vous dessinez, il est utile d'afficher une grille de repère avec \draw[help lines] (0,0) grid (4,3);.

Vous pouvez tracer un point en remplissant un petit cercle avec \fill, et étiqueter sa position avec un \node (voir chapitre dédié plus loin).

\begin{tikzpicture}
  % Grille de fond (aide visuelle)
  \draw[help lines, gray!30] (0,0) grid (4,3);
  % Quelques points
  \fill[red] (1,1) circle (2pt);
  \fill[blue] (3,2) circle (2pt);
  \fill[green!60!black] (2,0) circle (2pt);
  % Étiquettes
  \node[above right] at (1,1) {(1,1)};
  \node[above right] at (3,2) {(3,2)};
  \node[above right] at (2,0) {(2,0)};
\end{tikzpicture}
Aperçu : Coordonnées et points

Couleurs

TikZ accepte les couleurs prédéfinies : red, blue, green, black, white, gray, orange, purple, etc.

Vous pouvez aussi moduler l'intensité avec ! : red!50 est un rouge à 50 % (plus pâle), green!60!black mélange 60 % de vert et 40 % de noir (vert foncé).

On applique une couleur dans les options entre crochets du \draw.

\begin{tikzpicture}
  \draw[red, thick]      (0,2) -- (4,2) node[right] {rouge};
  \draw[blue, thick]     (0,1) -- (4,1) node[right] {bleu};
  \draw[green!60!black, thick] (0,0) -- (4,0) node[right] {vert};
\end{tikzpicture}
Aperçu : Couleurs

Styles de ligne

L'épaisseur du trait se règle avec thin, thick, very thick, ultra thick, ou avec line width=1pt pour une valeur précise.

Le motif du trait se règle avec dashed (tirets), dotted (points), loosely dashed (tirets espacés), densely dotted, etc.

\begin{tikzpicture}
  \draw[thick]                (0,3) -- (4,3) node[right] {trait normal};
  \draw[ultra thick]          (0,2.2) -- (4,2.2) node[right] {ultra thick};
  \draw[dashed, thick]        (0,1.4) -- (4,1.4) node[right] {pointillés};
  \draw[dotted, thick]        (0,0.6) -- (4,0.6) node[right] {points};
  \draw[loosely dashed]       (0,-0.2) -- (4,-0.2) node[right] {loosely dashed};
\end{tikzpicture}
Aperçu : Styles de ligne

Rectangle, cercle, ellipse

Un rectangle se trace avec (coin1) rectangle (coin2) où coin1 et coin2 sont deux coins opposés (typiquement bas-gauche et haut-droit).

Un cercle se trace avec (centre) circle (rayon).

Une ellipse nécessite deux rayons (horizontal et vertical) : (centre) ellipse (rx and ry).

\begin{tikzpicture}
  % Rectangle : (coin bas-gauche) rectangle (coin haut-droit)
  \draw[blue, thick] (0,0) rectangle (3,2);
  % Cercle : (centre) circle (rayon)
  \draw[red, thick] (5,1) circle (1cm);
  % Ellipse : (centre) ellipse (rayon-x and rayon-y)
  \draw[green!60!black, thick] (8,1) ellipse (1.2 and 0.7);
\end{tikzpicture}
Aperçu : Rectangle, cercle, ellipse

Nœuds et texte

Un nœud (node) est un objet positionnable qui contient du texte ou des formes. La commande de base est \node at (x,y) {contenu};.

Avec des options, le nœud peut être encadré : draw (dessiner le contour), rectangle ou circle (forme), fill=blue!10 (couleur de fond).

\begin{tikzpicture}
  % Un nœud rectangulaire
  \node[draw, rectangle, fill=blue!10] at (0,0) {Boîte};
  % Un nœud circulaire
  \node[draw, circle, fill=red!10] at (3,0) {Rond};
  % Texte simple sans cadre
  \node at (6,0) {Juste du texte};
\end{tikzpicture}
Aperçu : Nœuds et texte

Positionner les nœuds (right=of, below=of…)

Calculer manuellement les coordonnées de chaque nœud devient vite pénible. La bibliothèque positioning permet de placer un nœud par rapport à un autre : right=of A place le nœud à droite de A, below=of A en dessous, etc. Pour l'utiliser, ajoutez \usetikzlibrary{positioning} au préambule.

Les directions disponibles sont : right, left, above, below et leurs combinaisons (above right, below left…). Vous pouvez préciser une distance : below=2cm of A, ou globalement avec node distance=15mm en option du tikzpicture.

Chaque nœud a aussi des ancres nommées (north, south, east, west, north east, center…). On y accède avec la syntaxe (A.south) et c'est indispensable pour relier deux nœuds proprement : \draw (A.east) -- (B.west); tracera une flèche entre les bords, sans la traverser.

Astuce : nommer un nœud avec (A) juste après \node est obligatoire pour pouvoir y faire référence ensuite : \node[draw] (A) at (0,0) {Texte};.

\usetikzlibrary{positioning}
\begin{tikzpicture}[node distance=10mm and 14mm]
  % Nœud A : position absolue (point d'ancrage)
  \node[draw, rectangle, fill=blue!15, minimum size=10mm] (A) {A};

  % B à droite de A (écart par défaut)
  \node[draw, rectangle, fill=red!15, minimum size=10mm, right=of A] (B) {B};

  % C en dessous de A
  \node[draw, rectangle, fill=green!15, minimum size=10mm, below=of A] (C) {C};

  % D en bas-à-droite de A, distance personnalisée
  \node[draw, rectangle, fill=orange!20, minimum size=10mm,
        below right=15mm and 25mm of A] (D) {D};

  % Ancres : on relie des bords précis (south, north east…)
  \draw[->, thick] (A.south) -- (C.north);
  \draw[->, thick, dashed] (B.south west) -- (D.north);
  \draw[->, thick] (B.east) -- ++(0.6,0) node[right] {(B.east)};
\end{tikzpicture}
Aperçu : Positionner les nœuds (right=of, below=of…)

Flèches

Les flèches s'obtiennent en ajoutant des options de pointe : -> (flèche simple à droite), <- (à gauche), <-> (bidirectionnelle).

Pour des pointes plus élégantes, chargez la bibliothèque arrows.meta dans le préambule : \usetikzlibrary{arrows.meta}. Vous pouvez alors utiliser -{Stealth}, -{Latex}, -{Triangle}, etc.

\begin{tikzpicture}
  \draw[->, thick]    (0,3) -- (4,3) node[right] {flèche simple};
  \draw[<-, thick]    (0,2) -- (4,2) node[right] {flèche inverse};
  \draw[<->, thick]   (0,1) -- (4,1) node[right] {bidirectionnelle};
  % Flèche fine personnalisée (bibliothèque arrows.meta)
  \draw[-{Stealth}, very thick, red] (0,0) -- (4,0) node[right] {Stealth};
\end{tikzpicture}
Aperçu : Flèches

Polygones et chemins fermés

Pour tracer un polygone, on enchaîne plusieurs -- et on termine par -- cycle qui ferme proprement le chemin.

Pour le remplir (en plus du contour), utilisez l'option fill=couleur dans le \draw.

\begin{tikzpicture}
  % Triangle fermé avec 'cycle'
  \draw[blue, thick] (0,0) -- (2,0) -- (1,1.7) -- cycle;
  % Polygone irrégulier
  \draw[red, thick, fill=red!10] (3,0) -- (5,0) -- (5.5,1.5) -- (3.5,2) -- cycle;
\end{tikzpicture}
Aperçu : Polygones et chemins fermés

Arcs et courbes

Un arc de cercle se trace avec (point de départ) arc (angleDébut:angleFin:rayon). Les angles sont en degrés.

Pour des courbes lisses, utilisez les courbes de Bézier (chapitre suivant).

\begin{tikzpicture}
  % Arc de cercle : (départ) arc (angle1:angle2:rayon)
  \draw[blue, thick] (0,0) arc (0:180:1);
  % Courbe de Bézier : (départ) .. controls (P1) and (P2) .. (arrivée)
  \draw[red, thick] (3,0) .. controls (4,2) and (5,-1) .. (6,1);
\end{tikzpicture}
Aperçu : Arcs et courbes

Courbes de Bézier

Une courbe de Bézier cubique se trace avec (A) .. controls (P1) and (P2) .. (B). Le tracé part de A, finit en B, et est guidé par deux points de contrôle P1 et P2 — la courbe ne passe pas forcément par ces points, ils tirent la courbe vers eux comme des aimants.

Une Bézier quadratique n'utilise qu'un seul point de contrôle : (A) .. controls (P) .. (B). Plus simple à régler quand on cherche une courbe symétrique.

Astuce pédagogique : dessiner les points de contrôle avec \fill + leur polygone de contrôle en pointillés aide énormément à comprendre comment la courbe est construite.

\begin{tikzpicture}
  % Bézier cubique : (A) .. controls (P1) and (P2) .. (B)
  \draw[blue, thick] (0,0) .. controls (1,2) and (3,2) .. (4,0)
    node[right, blue] {Bézier cubique};
  % Points de contrôle visibles
  \fill[blue!50] (1,2) circle (1.5pt) node[above] {\scriptsize $P_1$};
  \fill[blue!50] (3,2) circle (1.5pt) node[above] {\scriptsize $P_2$};
  \draw[blue!50, dashed, thin] (0,0) -- (1,2) -- (3,2) -- (4,0);

  % Bézier quadratique (un seul point de contrôle)
  \draw[red, thick] (0,-2) .. controls (2,-4) .. (4,-2)
    node[right, red] {Bézier quadratique};
  \fill[red!50] (2,-4) circle (1.5pt) node[below] {\scriptsize $P$};
\end{tikzpicture}
Aperçu : Courbes de Bézier

Remplissage

Pour remplir une forme sans contour, utilisez \fill. Pour remplir avec un contour, utilisez \filldraw, ou ajoutez l'option fill=... à votre \draw.

Vous pouvez aussi appliquer une opacité avec fill opacity=0.3 pour des superpositions semi-transparentes.

\begin{tikzpicture}
  % \fill remplit (sans contour)
  \fill[blue!30] (0,0) rectangle (2,1.5);
  % \filldraw remplit ET dessine le contour
  \filldraw[red!30, draw=red, thick] (3,0) rectangle (5,1.5);
  % \draw[fill=...] équivalent
  \draw[fill=green!30, thick, green!60!black] (6,0) circle (0.8);
\end{tikzpicture}
Aperçu : Remplissage

Axes et grille

Pour tracer un repère orthonormé simple, utilisez deux \draw[->] avec un \node à l'extrémité pour étiqueter l'axe.

La construction \foreach \x in {1,2,3,4} permet de répéter un dessin pour chaque valeur — pratique pour les graduations.

\begin{tikzpicture}
  % Axes
  \draw[->, thick] (-0.5,0) -- (4.5,0) node[right] {$x$};
  \draw[->, thick] (0,-0.5) -- (0,3.5) node[above] {$y$};
  % Graduations
  \foreach \x in {1,2,3,4}
    \draw[gray!50] (\x,-0.05) -- (\x,0.05) node[below=2pt] {\x};
  \foreach \y in {1,2,3}
    \draw[gray!50] (-0.05,\y) -- (0.05,\y) node[left=2pt] {\y};
  % Un point
  \fill[red] (3,2) circle (2pt) node[above right] {A};
\end{tikzpicture}
Aperçu : Axes et grille

Tracé d'une fonction

Pour tracer le graphe d'une fonction, on utilise \draw plot (\x, {expression}), où \x est la variable, et l'expression mathématique est entre accolades.

Trois options indispensables : domain=a:b définit l'intervalle de tracé, samples=N contrôle le nombre de points (plus c'est grand, plus la courbe est lisse), et smooth demande une interpolation lisse.

Cette syntaxe utilise TikZ pur, sans pgfplots. Parfaite pour la majorité des graphes scolaires.

\begin{tikzpicture}[scale=1.2]
  % Axes
  \draw[->, thick] (-3.2,0) -- (3.2,0) node[right] {$x$};
  \draw[->, thick] (0,-1.5) -- (0,4.5) node[above] {$y$};
  % Tracé de y = x²
  \draw[blue, thick, smooth, samples=100, domain=-2:2]
    plot (\x, {\x*\x}) node[right] {$y = x^2$};
\end{tikzpicture}
Aperçu : Tracé d'une fonction

Plusieurs fonctions sur le même repère

Pour superposer plusieurs courbes, il suffit de répéter \draw plot autant de fois que nécessaire, en variant les couleurs et les expressions.

Important pour les fonctions trigonométriques : TikZ travaille en degrés par défaut. Pour utiliser des radians (avec π), ajoutez r après l'argument : sin(\x r).

\begin{tikzpicture}[scale=1.2]
  % Axes
  \draw[->, thick] (-3.5,0) -- (3.5,0) node[right] {$x$};
  \draw[->, thick] (0,-2.5) -- (0,2.5) node[above] {$y$};
  % Quelques graduations
  \foreach \x in {-3,-2,-1,1,2,3} \draw (\x, 0.05) -- (\x, -0.05) node[below] {\scriptsize\x};
  % Sinus en bleu
  \draw[blue, thick, smooth, samples=100, domain=-3.14:3.14]
    plot (\x, {sin(\x r)}) node[right] {$\sin x$};
  % Cosinus en rouge
  \draw[red, thick, smooth, samples=100, domain=-3.14:3.14]
    plot (\x, {cos(\x r)}) node[above right] {$\cos x$};
\end{tikzpicture}
Aperçu : Plusieurs fonctions sur le même repère

Aire sous une courbe

Pour matérialiser l'aire sous une courbe (typiquement pour illustrer une intégrale), on combine \fill avec un plot et on ferme la zone via -- cycle en passant par les bords sur l'axe.

L'option opacity=0.2 rend le remplissage semi-transparent, ce qui permet de garder la courbe visible par-dessus.

Pour des graphes plus avancés (axes annotés, légende automatique, échelles logarithmiques, statistiques), explorez le package pgfplots dans notre galerie.

\begin{tikzpicture}[scale=1.0]
  % Axes
  \draw[->, thick] (-0.5,0) -- (5.5,0) node[right] {$x$};
  \draw[->, thick] (0,-0.5) -- (0,3.5) node[above] {$y$};
  % y = sqrt(x) sur [0;5]
  \draw[teal, thick, smooth, samples=80, domain=0:5]
    plot (\x, {sqrt(\x)}) node[right] {$y = \sqrt{x}$};
  % Aire sous la courbe (remplie)
  \fill[teal, opacity=0.2, smooth, samples=80, domain=0:4]
    plot (\x, {sqrt(\x)}) -- (4,0) -- (0,0) -- cycle;
  % Étiquette
  \node[below] at (2, -0.3) {$\int_0^4 \sqrt{x}\,dx$};
\end{tikzpicture}
Aperçu : Aire sous une courbe

Pour aller plus loin

Vous maîtrisez maintenant les fondamentaux. Pour passer au niveau supérieur :

  • Galerie TikZ : 300+ figures classées par catégorie (mathématiques, physique, chimie, machine learning, diagrammes…). Cliquez sur n'importe quelle figure pour voir le code complet et l'éditer dans la démo.
  • pgfplots pour les graphes de fonctions et les statistiques : \usepackage{pgfplots}.
  • tikz-cd pour les diagrammes commutatifs en mathématiques.
  • circuitikz pour les schémas électriques.
  • Les bibliothèques TikZ utiles à charger : arrows.meta, positioning, calc, decorations.markings, patterns.