18
15

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 3 years have passed since last update.

Google Colabでまたまた日本語表示が豆腐不可避な方に(2019/10/27時点)

Last updated at Posted at 2019-10-27

1.想定する読者

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

  • 旧手順。相変わらず豆腐まみれです。
    qiita20190121b.PNG

  • 新手順。豆腐が解消されています。
    qiita20190121a.PNG

以上です。

18
15
2

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
18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?