LoginSignup
12
9

More than 1 year has passed since last update.

seabornで日本語表示する方法(Mac・Ubuntu)

Last updated at Posted at 2019-10-22

内容を更新したものをこちらに書きました。

追記(2021/10/29)

追記1
この記事の方がフォントのインストールなどがなく簡単みたいです!
Python 「matplotlib」や「seaborn」のグラフ内で日本語表示する - PythonとVBAで世の中を便利にする
ただ、毎回コードを書く必要があるみたいなので、本記事の内容もありかな、と思います。

追記2
フォントのダウンロード元のURLが変わったみたいです。
こちらのページから新しいURLを探して使用してください。

追記3
「フォントをダウンロードして所定の ttf フォルダに置く」処理をする代わりに、 sudo apt install fonts-ipaexfontをして、 matplotlib と seaborn の設定時に IPAGothic ではなく IPAexGothic を書く方法でも可能な事がわかりました。(参考
こちらの方が簡単そうです。

追記

同様の方法でMacでも日本語表示を実現できる事がわかりました。(macOS Catalina バージョン 10.15.3 で確認しました。)

Macの場合は、本記事の手順の内、以下の2点を変更すればOKです。

変更箇所 変更前(Ubuntu) 変更後(Mac)
使用するフォント ipag.ttf ipaexg.ttfを使用します。こちらのサイトからipaexg00401.zip(4.0MB)をダウンロードし解凍すると取得できます。
設定ファイルに記入するフォントの名前 IPAGothic IPAexGothic

はじめに

この記事の内容の大半はこのページを元にしています。ありがたや。

matplotlib, seabornの日本語表示 - Qiita

いきさつ

Ubuntu上で動くJupyter Labseabornを使おうとしたら、日本語が"□"になってしまった!

ググって出てきたサイトの記事を色々試してみたけれど解消しない。

が、最終的にはなんとか日本語が表示されたので良かったー。

肝は、フォントをIPAGothicにする所でした。(IPA明朝とかだと上手く表示されない!)

環境

  • @2019/10/22
  • matplotlib 3.0.3
  • seaborn 0.9.0
  • ubuntu 16.04

解決法

マニュアルっぽく書いていきます。

1. 日本語フォントファイルをダウンロード

このIPAフォント ダウンロードページのttfファイルの欄にある、IPAゴシック(Ver.003.03) ipag00303.zipというボタンをクリックするとダウンロード出来ます。

他のフォント(IPA明朝(Ver.003.03)など)だと、うまく表示されませんでした。気をつけてください。

ダウンロードしたら解凍してください。

2. ttfファイルを所定の位置にコピー

コピー先を次の方法で求めます。

python
import matplotlib as mpl
mpl.matplotlib_fname()

多分こんなのが出ると思います。

.../site-packages/matplotlib/mpl-data/matplotlibrc

そしたら、上のmpl-dataまでの所をコピーします。

.../site-packages/matplotlib/mpl-data/

そして、その後にfonts/ttf/を付け足します。

.../site-packages/matplotlib/mpl-data/fonts/ttf/

これでコピー先のパスが分かりました!

このフォルダに先ほど解凍して得たフォルダにあるipag.ttfというファイルをコピーしてください。

3. matplotlibの設定ファイルを更新

先ほども行なった以下のコードを実行してください。

python
import matplotlib as mpl
mpl.matplotlib_fname()

先ほどと同じくこんなパスが出てくるはずです。

.../site-packages/matplotlib/mpl-data/matplotlibrc

このパスはmatplotlibの設定ファイルのパスです。

では、matplotlibの設定ファイルを変更しましょう!

bash
vi .../site-packages/matplotlib/mpl-data/matplotlibrc

いろいろ表示されると思いますが、どこかに以下を追記するだけでOKです。

matplotlibrc
font.family : IPAGothic

これでmatplotlibの設定は完了です。

4. seabornの設定ファイルを更新

またまた、例のコードを実行して例のパスを表示してください。

python
import matplotlib as mpl
mpl.matplotlib_fname()
.../site-packages/matplotlib/mpl-data/matplotlibrc

seabornの設定ファイルのパスは、上記パスのsite-packages/までの部分にseaborn/rcmod.pyを付け足したものです。

.../site-packages/seaborn/rcmod.py

それではseabornの設定ファイルを更新しましょう!

bash
vi .../site-packages/seaborn/rcmod.py

まず、92行目にある以下の部分のfontIPAGothicに変えてください。

(vi の場合、 :set numberで行番号が表示されるようになります。)

rcmod.py
def set(context="notebook", style="darkgrid", palette="deep",
        font="IPAGothic", font_scale=1, color_codes=True, rc=None):
        # ↑ここを変更

次に、203行目のfont.familyIPAGothicに変えてください。

rcmod.py
"font.family": ["IPAGothic"]
            # ↑ここを変更

さらに、204行目のfont.sans-serifIPAGothicを加えてください。

rcmod.py
"font.sans-serif": ["Arial", "DejaVu Sans", "Liberation Sans",
                    "Bitstream Vera Sans", "sans-serif", "IPAGothic"],
                                                          # ↑これを追加

以上で設定の更新は完了です!

5. キャッシュの削除

matploglibに関するキャッシュを削除しておく必要があるみたいです。
以下のコマンドで削除しましょう。

bash
rm -rf ~/.matplotlib/* 

# もしくはこっちにキャッシュがあるかもしれません
rm -rf ~/.cache/.matplotlib/*

# あるいはこちら
rm -rf ~/.cache/matplotlib/*

これで日本語が表示されるはずです

確認してみてください!

(Jupyterで確認する時はkernelをrestartしてくださいね!)

12
9
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
12
9