サーチ…


備考

  • MatplotlibのLaTeXサポートには、動作するLaTeXのインストール、dvipng(LaTeXインストールに含まれるかもしれません)、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はコマンドとシンボルにバックスラッシュ\を使用します。これはPython文字列の特殊文字と衝突する可能があります。 Python文字列でリテラルのバックスラッシュを使用するには、エスケープするか、生の文字列に組み込む必要があります。

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で表示される数学スタイルは可能です。

ラテックスパッケージをロードするには、 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