matplotlib
Интеграция с TeX / LaTeX
Поиск…
замечания
- Для поддержки MatTotlib LaTeX требуется работающая установка LaTeX, dvipng (которая может быть включена в вашу установку LaTeX), и Ghostscript (рекомендуется GPL Ghostscript 8.60 или более поздняя версия).
- Поддержка pgf Matplotlib требует установки LaTeX, которая включает в себя пакеты TikZ / PGF (например, TeXLive), предпочтительно с установленными XeLaTeX или LuaLaTeX.
Вставка формул TeX в графики
Формулы TeX могут быть вставлены в график с использованием функции rc
import matplotlib.pyplot as plt
plt.rc(usetex = True)
или доступ к rcParams
:
import matplotlib.pyplot as plt
params = {'tex.usetex': True}
plt.rcParams.update(params)
TeX использует обратную косую черту \
для команд и символов, которые могут конфликтовать со специальными символами в строках Python. Чтобы использовать литеральные обратные косые черты в строке Python, они должны быть либо экранированы, либо включены в необработанную строку:
plt.xlabel('\\alpha')
plt.xlabel(r'\alpha')
Следующий участок может быть произведен кодом
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()
Отображаемые уравнения (такие как $$...$$
или \begin{equation}...\end{equation}
) не поддерживаются. Тем не менее, отображаемый математический стиль возможен с \displaystyle
.
Чтобы загрузить пакеты латекса, используйте аргумент tex.latex.preamble
:
params = {'text.latex.preamble' : [r'\usepackage{siunitx}', r'\usepackage{amsmath}']}
plt.rcParams.update(params)
Обратите внимание, однако, предупреждение в примере 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
Сохранение и экспорт участков, использующих TeX
Чтобы включить графики, созданные с помощью matplotlib в документах TeX, они должны быть сохранены в виде файлов pdf
или eps
. Таким образом, любой текст в сюжете (включая формулы TeX) отображается как текст в конечном документе.
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
Сюжеты в matplotlib могут быть экспортированы в TeX-код, используя макрос pgf
для отображения графики.
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')
Используйте команду rc
для изменения используемого движка TeX.
plt.rc('pgf', texsystem='pdflatex') # or luatex, xelatex...
Чтобы включить цифру .pgf
, напишите в своем документе LaTeX
\usepackage{pgf}
\input{my_pgf_plot.pgf}