Maplotlib でグラフを描く際,凡例やタイトル,軸ラベル等に $\LaTeX$ 表記を使おうと思って \(バックスラッシュ)を書いてもうまく機能しない場合がある。(\ がエスケープシークエンスと認識されてしまうらしい。)これをなんとかしようという話。検索すればすぐわかるんだけど,備忘録として。
必要なモジュールの import
In [1]:
# NumPy も使います
import numpy as np
# Matplotlib でグラフを描きます
import matplotlib.pyplot as plt
# グラフを SVG で Notebook にインライン表示させる設定
%config InlineBackend.figure_formats = ['svg']
\ が機能しない例
\theta が $\theta$ とならない。
In [2]:
x = np.linspace(0, 2*np.pi, 101)
key = '$\theta_0 = 0$'
plt.xlabel('$\theta$')
plt.ylabel('$\sin \theta$')
plt.title('$\sin \theta$')
plt.plot(x, np.sin(x), label = key);
plt.legend();
\ を機能させるための対策
文字列の前に r をつけるか,\ を \\ にするか,どちらかで機能するようになる。
In [3]:
# \ のかわりに \\ を使う例
key = '$\\theta_0 = 0$'
plt.xlabel('$\\theta$')
# 文字列の前に r をつける例
plt.ylabel(r'$\sin \theta$')
plt.title(r'$\sin \theta$')
plt.plot(x, np.sin(x), label = key);
plt.legend();