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)
tikz.png
図1: Matplotlib での TikZ の使用例

コメント

Comments powered by Disqus
書籍更新情報
2017-02-18
Pythonによる科学技術計算 基礎編
1.4版への更新が可能になりました。
サポートページはこちら
電子書籍