Help us understand the problem. What is going on with this article?

Google Colabでまたまた日本語表示が豆腐不可避な方に(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

# ランタイムを再起動する。
  • 削除するキャッシュさえ間違わなければ解決できます。

4.before-after

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

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

以上です。

siraasagi
中小企業診断士。KnowledgeGraph(ナレッジグラフ,グラフDB,グラフデータベース)。
http://yoshidaagri.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした