Jupyterにおけるmatplotデフォルト設定の変更

Jupyterにおけるmatplotデフォルト設定の変更

目への負荷軽減を考えて、普段はJupyterLab Themeを「Dark」にしています。 ただ、matplotで作図をすると背景が黒のため軸のフォントが確認できなくなってしまいます。 設定を毎回書き込むのは面倒なので、今回はmatplotlibのデォルトの設定を変更してこれを見やすいようにします。ついでに日本語の設定もしちゃいます。

スクリーンショット 2018 08 20 12 16 48

上のグラフがJupyterLabに出力されている図です。軸が何なのかわからないです。。。見えていませんが、実はタイトルも日本語で設定してまして□(豆腐)になってます。

日本語の設定

フォントのダウンロード

下記のサイトを参考にフォントをダウンロードします。

ダウンロードしたフォント(ipaexg.ttf)を~/Library/Fonts/にコピーします。

$ cp ~/Downloads/ipaexg00301/ipaexg.ttf ~/Library/Fonts/

fontListの削除

フォントを反映させるため、~/.matplotlib/fontList.jsonを削除します。 この箇所はサイトによって説明が異なっていたので、環境によっては.cacheファイルを削除するなど異なるかも知れません。

rm ~/.matplotlib/fontList.json

作図スタイルの設定

設定ファイル(matplptlibrc)の確認

matplotの設定ファイルがどこにあるかを確認します。 Pythonのコンソールから下記を実行することで確認できます。

import matplotlib as mpl
print(mpl.matplotlib_fname())

/Users/hogehoge/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

この場所は環境や設定を反映させる範囲によって変わってきます。 自分はpyenで環境を構築しているので少し階層が深いです。詳しい内容は、下記のサイトの方が説明してくれています。

スタイルの確認

matplptには色々なグラフスタイルが用意されています。今回は 黒背景用のその名も「dark_background」というスタイルを起動時に反映させることにします。

個別環境のmpl-data/stylelib/dark_background.mplstyleの内容をmatplotlibrcに追記します。

$ cd /Users/hogehoge/.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib
$ cat dark_background.mplstyle >> ../matplotlibrc

matplotlibrcファイルの編集

matplotlibrcファイルの最後に、フォント設定とコメントを追記・編集します。

#個別設定
##フォント設定
font.family : IPAexGothic
##グラフレイアウト設定
#Set black background default line colors to white.
lines.color: white 
patch.edgecolor: white 
text.color: white 
axes.facecolor: black 
axes.edgecolor: white 
axes.labelcolor: white 
axes.prop_cycle: cycler('color', ['8dd3c7', 'feffb3', 'bfbbd9', 'fa8174', '81b1d2', 'fdb462', 'b3de69', 'bc82bd', 'ccebc4', 'ffed6f']) 
xtick.color: white 
ytick.color: white 
grid.color: white 
figure.facecolor: black 
figure.edgecolor: black 
savefig.facecolor: black 
savefig.edgecolor: black 
###

JuypterLabを再起動して、設定が反映されたか確認してみます。

スクリーンショット 2018 08 20 12 18 45

良い感じです。軸もタイトルも認識できるようになりました。

補足

資料などに添付する際

背景が黒いと添付資料には向かないので、その場合は個別にレイアウトを変えます。

plt.style.use('seaborn-darkgrid')
plt.rcParams['font.family'] = 'IPAexGothic'
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.title('日本語')
plt.show()

Unknown 6

まとめ

今回はJupyterLabのDarkTheme用にmatplotlibの初期設定の変更を行いました。すぐにフォントやスタイル名称を忘れてしまうので、そういう煩わしさはなくなりました♪

Settingカテゴリの最新記事