awsのcloud9でmatplotlibの日本語設定

matplotlib

アマゾンウェブサービス(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()

参考

  1. 【 wget 】コマンド――URLを指定してファイルをダウンロードする
  2. ファイルやディレクトリをコピーするcpコマンドの使い方!【Linuxコマンド集】
  3. 仮想通貨自動売買システム(自動売買Bot)のAWSのCloud9上での環境 …
  4. Matplotlibのグラフのスタイルを設定ファイル・スタイルシートで変更
  5. viエディタの使い方
  6. 【matplotlib】日本語の設定 – keisukeのブログ
  7. matplotlibで日本語 – Qiita

コメント