Szukaj…


Uwagi

  • Obsługa LaTeX przez Matplotlib wymaga działającej instalacji LaTeX, dvipng (która może być dołączona do instalacji LaTeX) i Ghostscript (zalecana jest GPL Ghostscript 8.60 lub nowsza wersja).
  • Obsługa pgf przez Matplotlib wymaga najnowszej instalacji LaTeX, która obejmuje pakiety TikZ / PGF (takie jak TeXLive), najlepiej z zainstalowanym XeLaTeX lub LuaLaTeX.

Wstawianie formuł TeX do wykresów

Formuły TeX można wstawiać do wykresu za pomocą funkcji rc

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

lub dostęp do rcParams :

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

TeX używa odwrotnego ukośnika \ do poleceń i symboli, które mogą powodować konflikty ze znakami specjalnymi w łańcuchach Pythona. Aby użyć dosłownych odwrotnych ukośników w łańcuchu Pythona, muszą one być poprzedzone znakami ucieczki lub włączone do nieprzetworzonego ciągu:

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

Następująca fabuła Wykres pokazujący TeX w etykietach i legendach może być wygenerowany przez kod

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()

Wyświetlane równania (takie jak $$...$$ lub \begin{equation}...\end{equation} ) nie są obsługiwane. Niemniej jednak wyświetlany styl matematyczny jest możliwy dzięki \displaystyle .

Aby załadować pakiety lateksowe, użyj argumentu tex.latex.preamble :

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

Zwróć jednak uwagę na ostrzeżenie w przykładowym pliku 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

Zapisywanie i eksportowanie wykresów korzystających z TeXa

Aby uwzględnić wykresy utworzone przy pomocy matplotlib w dokumentach TeX, należy je zapisać jako pliki pdf lub eps . W ten sposób dowolny tekst na wykresie (w tym formuły TeX) jest renderowany jako tekst w dokumencie końcowym.

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

Wykresy w matplotlib można eksportować do kodu TeX za pomocą pakietu makr pgf do wyświetlania grafiki.

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')

Użyj komendy rc aby zmienić używany silnik TeX

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

Aby dołączyć rysunek .pgf , napisz w dokumencie LaTeX

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow