수색…


비고

  • Matplotlib의 LaTeX 지원에는 작동중인 LaTeX 설치, LaTeX 설치에 포함될 수있는 dvipng 및 Ghostscript가 필요합니다 (GPL Ghostscript 8.60 이상 권장).
  • Matplotlib의 pgf 지원에는 TikZ / PGF 패키지 (예 : TeXLive)가 포함 된 최신 LaTeX 설치가 필요하며 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은 파이썬 문자열의 특수 문자 와 충돌 할 수있는 명령과 기호에 백 슬래시 \ 를 사용합니다. 파이썬 문자열에서 리터럴 백 슬래시를 사용하려면 이스케이프하거나 원시 문자열에 통합해야합니다.

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

다음 그림 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.show()

표시된 방정식 ( $$...$$ 또는 \begin{equation}...\end{equation} )은 지원되지 않습니다. 그럼에도 \displaystyle 하면 표시된 수학 스타일을 사용할 수 있습니다.

latex 패키지를로드하려면 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을 사용하는 플롯 저장 및 내보내기

TeX 문서에 matplotlib로 만든 플롯을 포함 시키려면 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의 플롯은 그래픽을 표시하기 위해 pgf 매크로 패키지를 사용하여 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_pgf_plot.pgf')

사용 된 TeX 엔진을 변경하려면 rc 명령을 사용하십시오.

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

.pgf 그림을 포함 시키려면 LaTeX 문서에

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


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow