rcParams[‘text.usetex’] = True と Sans-serif (matplotlib)

【困ったこと】
matplotlibでグラフをプロットするときに,フォントを埋め込むためには以下のコードが必要になる.

plt.rcParams[‘ps.useafm’] = True
plt.rcParams[‘pdf.use14corefonts’] = True
plt.rcParams[‘text.usetex’] = True

(参考URL)matplotlib で Type 1 のフォントを埋め込み

しかし,最後の

plt.rcParams[‘text.usetex’] = True

が曲者で,この記述によって数学的な記述のフォントなどがLaTeXのコントロール下に置かれるらしい.

そして,今回困ったのが,

xscale(“log”)

によって対数軸を用いたグラフを使おうとすると,軸目盛のべき乗の部分のフォントがserif体になってしまったこと.

 

【x軸の目盛がserif体のグラフ例】

目盛がserif体になっているグラフの例

目盛がserif体になっているグラフ

 

【やりたいこと】
上記のフォントをsans-serif体にしたい

 

【解決策】
Stack OverflowのSans-serif Font for Axes Tick-labels with Latexによると,LaTeXのパッケージを使えば解決できるとのこと.

具体的にはsfmath.styをインストールし,冒頭のコードを

plt.rcParams[‘ps.useafm’] = True
plt.rcParams[‘pdf.use14corefonts’] = True
plt.rcParams[‘text.usetex’] = True
plt.rcParams[‘text.latex.preamble’] = ‘\usepackage{sfmath}’

に変更すればよい.

ちなみインストールですが,
CentOS 6.4環境では/usr/share/texmf/tex/latexあたりにsfmath.styファイルを突っ込んでmktexlsrコマンドを叩けばよい.
(おそらく行儀が悪い配置ですので注意.)

Windowsでもtexmfという名前のつくディレクトリがどこかにあるはずなのでそれを探せばよい.

 

【サンプルコード】

【x軸の目盛がsans-serif体のグラフ】

x軸の目盛がsans-serif体のグラフ

x軸の目盛がsans-serif体のグラフ

広告

About mkacky
情報工学系の大学院生(D2/2013年現在)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。