Heroku 上でも matplotlib のグラフ描写をする
9/26/2018 6:48:22 PM
Python
Heroku
Heroku でデプロイしたアプリ上で、matplotlib のグラフ描写するのに結構詰まったので対処法をまとめておきます
エラー吐かれてそもそもデプロイできない
具体的には
ImportError: No module named tkinter
を吐かれました
解決策は、tkinter(Mac 標準)ではなく Agg を利用するように変更することです
あるいは, matpotlibrc をカレントディレクトリに設置してpythonimport matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt
txtbackend: Agg
と記述しておいても良いです
こちらの方法なら、毎回記述する必要もありません
グラフの日本語が文字化けする
デフォルトのフォントが日本語対応してないのが原因みたいです
適切なフォントをダウンロードして、matplotlib 側で指定していきます
IPAex フォント ダウンロードページより、IPAex ゴシックをダウンロードして、ipaexg.ttf ファイルを<project>
/.fonts/ に移動させます
その上で
pythonimport matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties fontprop = FontProperties(fname='.fonts/ipaexg.ttf', size=10)
としておきます あとは matplotlib でグラフ描写するときに
pythonplt.xticks(<X軸リスト>, <X軸名前リスト(日本語)>, font_properties=fontprop)
という風に指定してあげれば OK です
で、これも matpotlibrc に書いてしまえばめんどくさくなくて良きですtxtbackend : Agg font.family : IPAexGothic