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

Figure 1: MatplotlibでのTikZの使用例

コメント

Comments powered by Disqus
書籍更新情報
2016-10-21
Pythonによる科学技術計算 基礎編
PDF版の販売を開始しました。
販売ページはこちら

2016-09-09
Pythonによる科学技術計算 基礎編
1.2版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストア、Leanpubで販売中です
Pythonによる科学技術計算 基礎編
PDF版の販売はこちら
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share