matplotlib
Integracja z TeX / LaTeX
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 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}