1.想定する読者
- 1-1.以下の記事を見てgoogle colabの日本語化を済ませたのに、また2019年10月下旬からまた豆腐に悩まされている皆様(筆者含む)。
- Colaboratoryでmatplotlibの日本語表示
- https://qiita.com/unvavo/items/a907cb927bdadc1d8d0c
- https://qiita.com/siraasagi/items/3836cedede350280ec42
- 1-2.matplotlibを使う時、以下のエラーが出る人
ERROR.log
findfont: Font family ['IPAGothic'] not found. Falling back to DejaVu Sans.
/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_agg.py:211: RuntimeWarning: Glyph 29983 missing from current font.
font.set_text(s, 0.0, flags=flags)
2.結論:matplotlibがver3.1以上だとfont cacheが「fontlist-v310.json」に変更
- 2019年9月までは「fontlist-v300.json」で良かったのですが、バージョン上がりましたmatplotlib
NG.py
# このコマンドだと豆腐不可避
rm /root/.cache/matplotlib/fontList.json
rm /root/.cache/matplotlib/fontList-v300.json
- matplotlibのcacheに-vXXXと書いてある見慣れないファイル、これが本来消すべきfont cacheです。
- vXXXはどうやらmatplotlibのバージョンっぽいです。
ls.py
!ls -ll /root/.cache/matplotlib/
-rw-r--r-- 1 root root 46110 Jan 17 17:06 fontList.json
-rw-r--r-- 1 root root 29351 Jan 17 17:06 fontlist-v310.json # 2019/10/26時点ではこれを削除。
drwxr-xr-x 2 root root 4096 Jan 17 17:06 tex.cache
- またgoogle colabにデフォルトでインストールされているmatplotlibのVersioonが上がってキャッシュファイルが変わったのでしょう。
pipfreeze.py
!pip freeze
~(中略)~
matplotlib==3.0.2 # 2019/01/21
matplotlib==3.1.1 # 2019/10/26
~(中略)~
3.matplotlib ver.3以降の新たな日本語表示手順
success.py
# 日本語フォントをダウンロードする。
!apt-get -y install fonts-ipafont-gothic
# キャッシュを削除する。
# !rm /root/.cache/matplotlib/fontList.json # 旧cache
!rm /root/.cache/matplotlib/fontlist-v310.json # 消すべきcache
# ランタイムを再起動する。(2020/10/14 この手順は不要ですので、スキップしてください)
- 削除するキャッシュさえ間違わなければ解決できます。
4.before-after
以上です。