内容を更新したものをこちらに書きました。
追記(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 Lab
でseaborn
を使おうとしたら、日本語が"□"になってしまった!
ググって出てきたサイトの記事を色々試してみたけれど解消しない。
が、最終的にはなんとか日本語が表示されたので良かったー。
肝は、フォントを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ファイルを所定の位置にコピー
コピー先を次の方法で求めます。
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の設定ファイルを更新
先ほども行なった以下のコードを実行してください。
import matplotlib as mpl
mpl.matplotlib_fname()
先ほどと同じくこんなパスが出てくるはずです。
.../site-packages/matplotlib/mpl-data/matplotlibrc
このパスはmatplotlibの設定ファイルのパスです。
では、matplotlibの設定ファイルを変更しましょう!
vi .../site-packages/matplotlib/mpl-data/matplotlibrc
いろいろ表示されると思いますが、どこかに以下を追記するだけでOKです。
font.family : IPAGothic
これでmatplotlibの設定は完了です。
4. seabornの設定ファイルを更新
またまた、例のコードを実行して例のパスを表示してください。
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の設定ファイルを更新しましょう!
vi .../site-packages/seaborn/rcmod.py
まず、92行目にある以下の部分のfont
をIPAGothic
に変えてください。
(vi の場合、 :set number
で行番号が表示されるようになります。)
def set(context="notebook", style="darkgrid", palette="deep",
font="IPAGothic", font_scale=1, color_codes=True, rc=None):
# ↑ここを変更
次に、203行目のfont.family
もIPAGothic
に変えてください。
"font.family": ["IPAGothic"]
# ↑ここを変更
さらに、204行目のfont.sans-serif
にIPAGothic
を加えてください。
"font.sans-serif": ["Arial", "DejaVu Sans", "Liberation Sans",
"Bitstream Vera Sans", "sans-serif", "IPAGothic"],
# ↑これを追加
以上で設定の更新は完了です!
5. キャッシュの削除
matploglibに関するキャッシュを削除しておく必要があるみたいです。
以下のコマンドで削除しましょう。
rm -rf ~/.matplotlib/*
# もしくはこっちにキャッシュがあるかもしれません
rm -rf ~/.cache/.matplotlib/*
# あるいはこちら
rm -rf ~/.cache/matplotlib/*
これで日本語が表示されるはずです
確認してみてください!
(Jupyterで確認する時はkernelをrestartしてくださいね!)