Matplotlib の pgf バックエンド
Python の汎用可視化ライブラリである Matplotlib では、pgf バックエンド を使用することにより、LuaLaTeX や XeTeX でテキストなどを挿入することができます。 LuaLaTeX で PDF を作成する場合は、pgf バックエンドで図を作成するとフォントの統一もしやすいのでおすすめです。
pgf バックエンド
バックエンドの選択には mpl.use
メソッドを使用します。
そして、辞書で LuaLaTeX を使用するための設定を記述し、 mpl.rcParams.update
メソッドで設定を反映させます。
ここの pgf.preamble
には LaTeX のパッケージを読み込むコードなどをリストで記述します。
import matplotlib as mpl mpl.use('pgf') pgf_with_custom_preamble = { 'pgf.texsystem': 'lualatex', 'text.usetex': True, 'pgf.rcfonts': False, 'pgf.preamble': [ r'\usepackage{tikz}', ] } mpl.rcParams.update(pgf_with_custom_preamble)
以上の設定により、Matplotlib のテキストなどを挿入するメソッドにおいて、読み込んだ LaTeX パッケージのコマンドを使用できるようになります。 図は PDF か PGF 形式で保存しておけば、LuaLaTeX でそのまま挿入することができます。
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) fig, ax = plt.subplots(figsize=(6, 4)) ax.plot(x, y) ax.text(4, 0.5, r'$\tikz\node[draw=blue]{Ti\emph{k}Z};$') fig.tight_layout(pad=.5)
