アマゾンウェブサービス(aws)のcloud9, jupyter notebook等で日本語フォントの図を出力する方法
フォントのダウンロード
IPAfontをwgetを使ってダウンロードします。[1]
wget -O ipafont.zip http://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php
unzipコマンドでzipファイルを解凍します。
unzip ipafont.zip
フォントの移動
IPAfont00303というフォルダができるので、中のttfファイルをfontsフォルダへコピーします。[2], [3]
sudo cp IPAfont00303/*ttf /usr/share/fonts/
matplotlibrcファイルの修正
matplotlibrcにフォントの設定を書き込みます。ファイルの場所は環境によって異なるため、どこにあるかを探します。[4]
import matplotlib as mpl print(mpl.matplotlib_fname())
を実行すると、以下の場所にあることがわかりました。
/home/ec2-user/.local/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
matplotlibrcファイルをviエディタで開きます。viエディタとは、テキストエディタで、ターミナル上で直接ファイルの中身を修正できます。[5]
sudo vi の後にmatplotlibrcのフルパスをいれて、viエディタを起動します。
sudo vi /home/ec2-user/.local/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
matplotlibrcファイルの中身は基本的に#でコメントアウトしてあるので、最下行まで移動して、i で追記モードへ移行して、
font.family : IPAGothic
とペーストします。
追記したらESCを押し追記モードを終了し、:wqと入力することで保存して終了します。
キャッシュの削除
キャッシュファイルを削除します。これを行わないと、「フォントがありません」というエラーが帰ってきます。[6]
rm /home/ec2-user/.cache/matplotlib/fontList.json
この他にfontList.cacheやfontList.py3k.cacheがある場合は以下を実行して削除します。
rm /home/ec2-user/.cache/matplotlib/fontList.cache
rm /home/ec2-user/.cache/matplotlib/fontList.py3k.cache
キャッシュの再構築
基本的に上記の方法で日本語をグラフ上に表示できるはずですが、うまくいかない場合、以下のpythonスクリプトでキャッシュファイルを再構築します。[7]
import matplotlib.font_manager matplotlib.font_manager._rebuild()
コメント