--- myst: html_meta: keywords: LaTeX, composition, illustrations, graphiques --- # Comment réaliser des diagrammes à barres ? ## Avec l'extension [PGFPlots](ctanpkg:pgfplots) L'extension [PGFPlots](ctanpkg:pgfplots) vous permet de dessiner des [diagrammes à barres](wpfr:Diagramme_à_barres) (ou diagrammes en bâtons) et bien d'autres encore. Basée sur [TikZ](ctanpkg:pgf), elle est très polyvalente et permet toutes sortes de représentations de données. La contrepartie de cette polyvalence est que [sa documentation](texdoc:pgfplots) est volumineuse (mais très claire). ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{pgfplots} \pgfplotsset{width=7cm} \begin{document} \begin{tikzpicture} \begin{axis}[ x tick label style={/pgf/number format/1000 sep=}, ylabel=Population, enlargelimits=0.15, legend style={ at={(0.5,-0.15)}, anchor=north, legend columns=-1 }, ybar=5pt,% configures `bar shift' bar width=9pt, nodes near coords, point meta=y *10^-7, % the displayed number ] \addplot coordinates{ (1930,50e6) (1940,33e6)(1950,40e6) (1960,50e6) (1970,70e6) }; \addplot coordinates{ (1930,38e6) (1940,42e6)(1950,43e6) (1960,45e6) (1970,65e6) }; \legend{Lointain,Proche} \end{axis} \end{tikzpicture} \end{document} ``` ## Avec l'extension Si vos besoins sont très modestes, l'extension peut être suffisante. Elle s'appuie elle aussi sur [TikZ](ctanpkg:pgf). Elle a pour particularité de ne proposer que des barres horizontales. ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{bchart} \begin{document} \centering \begin{bchart}[step=20,max=100] \bcbar[text=Alain]{47} \bcbar[text=Alex]{83} \bcbar[text=Alice]{65} \bcxlabel{Production mensuelle de documents} \end{bchart} \end{document} ``` ## Avec l'extension Si vous avez l'habitude d'utiliser , les extensions et fournissent des commandes pour dessiner des diagrammes à barres. Voici un exemple basé sur la [documentation](texdoc:pst-bar) de l'extension. Notez que nous utilisons ici le moteur LuaLaTeX pour traiter cet exemple car il est directement compatible avec . ``` %!TEX engine=xelatex % Un fichier de données créé par le document avec l'environnement filecontents \begin{filecontents*}[nosearch,overwrite]{test.csv} Alain, Alex, Alice 1.4, 2, 2.5 1, 2.7, 3.2 \end{filecontents*} % Le document LaTeX \documentclass[french]{article} \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{pst-bar} \begin{document} \psset{unit=0.5in} \centering \begin{pspicture}(0,-0.5)(3,3)% \readpsbardata{\data}{test.csv}% \psbarchart[barstyle={red,blue}]{\data}% \end{pspicture} \end{document} ```