9
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

matplotlib, seabornの日本語表示

Last updated at Posted at 2016-11-02

pythonで作るグラフの日本語表示

事前にIPAなどの日本語対応フォントをインストールしておくこと。
zipダウンロードしたら解凍して.ttfファイルを右クリックからインストールでOK.
独立行政法人 情報処理推進機構

デフォルトのフォントであるsans-serifからIPAGothicIPAMinchoなどにしなければならない。

やり方は以下の二つ

  • ~/.matplotlib/matplotlibrcを弄る
  • スクリプトの最初でフォント変更の宣言

~/.matplotlib/matplotlibrcを弄る

matplotlibrcとは、matplotlibの設定ファイルのこと。
import matplolibを行ったときに実行される。
~/.matplotlib以下のディレクトリにmatplotlibrcの名前で保存しておくと、matplotlibのインポート時に読み込んでくれる。

どのrc設定ファイルが有効であるかは、次のコードで調べる。

どのmatplotlibrcが有効か調べる
>>> import matplotlib as mpl
>>> mpl.matplotlib_fname()
'C:\\Users\\python\\.matplotlib\\matplotlibrc'

書き込む内容は以下の通り。
最初にも書いたようにこの場合はIPA明朝がインストールされていること。
それ以外のフォントでもできるはず。名前は調べてください。

~/.matplotlib/matplotlibrc
font.family : IPAMincho

startup.ipyに注意

スタートアップ時にmatplotlib.pyplotと同時にseabornを起動している場合は以下の操作も行う。

seabornの設定

seabornインポートしているときは、C:\tools\Anaconda3\Lib\site-packages\seaborn\rcmod.pyrcmod.pyのset関数のデフォルト値のfontを"sans-serif"から"IPAMincho"などに変更する。

def set(context="notebook", style="darkgrid", palette="deep",
        font="IPAMincho", font_scale=1, color_codes=False, rc=None):

スクリプトの最初でフォント変更の宣言

スクリプトの最初でフォントの変更(matplotlib.pyplot)
import matplotlib as mpl
mpl.rcParameters['font.family'] = 'IPAMincho'
スクリプトの最初でフォントの変更(seaborn)
sns.set(font=['IPAMincho'])

フォントキャッシュの更新

設定をちゃんとしたのになんかうまくいかんな、ってときは以下のコマンドでフォントキャッシュを更新するとうまく行くことがある。

import matplotlib as mpl
matplotlib.font_manager._rebuild()

参考: Updating the Matplotlib Font Cache

9
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?