Recherche…


Remarques

  • La prise en charge de LaTeX par Matplotlib nécessite une installation LaTeX opérationnelle, dvipng (qui peut être incluse avec votre installation LaTeX) et Ghostscript (GPL Ghostscript 8.60 ou version ultérieure est recommandé).
  • Le support pgf de Matplotlib nécessite une installation récente de LaTeX incluant les packages TikZ / PGF (tels que TeXLive), de préférence avec XeLaTeX ou LuaLaTeX.

Insertion de formules TeX dans les parcelles

Les formules TeX peuvent être insérées dans le tracé à l'aide de la fonction rc

import matplotlib.pyplot as plt
plt.rc(usetex = True)

ou accéder aux rcParams :

import matplotlib.pyplot as plt
params = {'tex.usetex': True}
plt.rcParams.update(params)

TeX utilise la barre oblique inverse \ pour les commandes et les symboles, ce qui peut entrer en conflit avec des caractères spéciaux dans les chaînes Python. Pour utiliser des barres obliques inverses littérales dans une chaîne Python, elles doivent soit être échappées, soit incorporées dans une chaîne brute:

plt.xlabel('\\alpha')
plt.xlabel(r'\alpha')

La parcelle suivante Tracé montrant TeX dans les étiquettes et la légende peut être produit par le code

import matplotlib.pyplot as plt
plt.rc(usetex = True)
x = range(0,10)
y = [t**2 for t in x]
z = [t**2+1 for t in x]
plt.plot(x, y, label = r'$\beta=\alpha^2$')
plt.plot(x, z, label = r'$\beta=\alpha^2+1$')
plt.xlabel(r'$\alpha$')
plt.ylabel(r'$\beta$')
plt.legend(loc=0)
plt.show()

Les équations affichées (telles que $$...$$ ou \begin{equation}...\end{equation} ) ne sont pas prises en charge. Néanmoins, le style mathématique affiché est possible avec \displaystyle .

Pour charger des paquets latex, utilisez l'argument tex.latex.preamble :

params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams.update(params)

Notez cependant l'avertissement dans l' exemple de fichier matplotlibrc :

#text.latex.preamble : # IMPROPER USE OF THIS FEATURE WILL LEAD TO LATEX FAILURES
                       # AND IS THEREFORE UNSUPPORTED. PLEASE DO NOT ASK FOR HELP
                       # IF THIS FEATURE DOES NOT DO WHAT YOU EXPECT IT TO.
                       # preamble is a comma separated list of LaTeX statements
                       # that are included in the LaTeX document preamble.
                       # An example:
                       # text.latex.preamble : \usepackage{bm},\usepackage{euler}
                       # The following packages are always loaded with usetex, so
                       # beware of package collisions: color, geometry, graphicx,
                       # type1cm, textcomp. Adobe Postscript (PSSNFS) font packages
                       # may also be loaded, depending on your font settings

Enregistrement et exportation de tracés utilisant TeX

Afin d'inclure les tracés créés avec matplotlib dans les documents TeX, ils doivent être enregistrés sous pdf fichiers pdf ou eps . De cette manière, tout texte du tracé (y compris les formules TeX) est rendu sous forme de texte dans le document final.

import matplotlib.pyplot as plt
plt.rc(usetex=True)
x = range(0, 10)
y = [t**2 for t in x]
z = [t**2+1 for t in x]
plt.plot(x, y, label=r'$\beta=\alpha^2$')
plt.plot(x, z, label=r'$\beta=\alpha^2+1$')
plt.xlabel(r'$\alpha$')
plt.ylabel(r'$\beta$')
plt.legend(loc=0)
plt.savefig('my_pdf_plot.pdf')  # Saving plot to pdf file
plt.savefig('my_eps_plot.eps')  # Saving plot to eps file

Les diagrammes dans matplotlib peuvent être exportés vers le code TeX en utilisant le pgf macro pgf pour afficher les graphiques.

import matplotlib.pyplot as plt
plt.rc(usetex=True)
x = range(0, 10)
y = [t**2 for t in x]
z = [t**2+1 for t in x]
plt.plot(x, y, label=r'$\beta=\alpha^2$')
plt.plot(x, z, label=r'$\beta=\alpha^2+1$')
plt.xlabel(r'$\alpha$')
plt.ylabel(r'$\beta$')
plt.legend(loc=0)
plt.savefig('my_pgf_plot.pgf')

Utilisez la commande rc pour changer le moteur TeX utilisé

plt.rc('pgf', texsystem='pdflatex')  # or luatex, xelatex...

Pour inclure la figure .pgf , écrivez dans votre document LaTeX

\usepackage{pgf}
\input{my_pgf_plot.pgf}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow