環境設定¶
Matplotlib を利用するための環境をもっと細かく整備してみよう。
設定ファイル matplotlibrc
概要¶
Matplotlib 環境のユーザー設定ファイルについて記す。
Matplotlib が扱う、図の大きさや図形の色といった、ほとんど全てのプロパティーを指定するために設定ファイルというものを利用することができる。
設定ファイル名は
matplotlibrc
である。この設定ファイルによる設定のことを rc settings とか rc parameters とかと呼ぶ。
その設定ファイルのあるディレクトリーは、次の優先度で決まる。
作業ディレクトリー。
ユーザーの環境依存のディレクトリー。
Windows 環境でもユーザーがわざわざ環境変数
HOME
を設定している場合は、 Matplotlib はきちんとそのパスを参照してくれる。一度でも Matplotlib を利用すると、
$HOME
にフォルダー.matplotlib
ができている。そこにテキストファイルmatplotlibrc
を自分で作成する。
Matplotlib インストール場所から決まるディレクトリー。
私の場合は
D:/Python35/lib/site-packages/matplotlib/mpl-data/
となる。Matplotlib のアップグレードの度に上書きされると思っていたほうがよい。したがって、この 設定ファイルを編集するような状況はまれだと思う。
実際に参照される設定ファイルは、関数
mpl.matplotlib_fname
の呼び出しで確認可能。インストール場所から決まるディレクトリーに置いてある設定ファイルをコピー、編集して使う。
テンプレは基本的に設定コマンド?のコメントアウトで埋め尽くされている。ここを眺めていればカスタマイズの方法は直感できる仕組みになっている。
設定ファイル
matplotlibrc
をテキストエディターで編集するときには、もし python-mode 的な機能をサポートするエディターを使うのならば、それを ON にする。コードの見通しがよくなる(コメント文字列がコメント色になるだけだが)。
カスタマイズする¶
先述の方法でユーザー設定ファイルを生成し、次のように編集して手持ちのプロットの表示がどのように変化するのかを検証した。
PyQt5 が使用可能な環境では試しに
backend : Qt5Agg
としてみる。経験則だが
backend
の項目だけは他の項目とは異なり、コメントアウトによるデフォルト値適用の解釈がなされないようだ。何らかのバックエンドを明示的に指定する必要があるもよう。
Miniconda 管理下における Python 3.5.2 環境では既定のバックエンドである TkAgg が指定されたままであると、私の環境では実行時に Segmentation fault を引き起こす。そのため、唯一動作確認できたバックエンドである
backend : Qt4Agg
を、PyQt5 を利用可能な環境にあればbackend : Qt5Agg
を設定してしのぎたい。plt.plot
の線の色はaxes.prop_cycle
で指定する。カンマ区切りで数色を一度に指定する。プロットを
plt.plot
呼び出しで追加するたびに、カンマで区切られた色が cyclic に適用されるのだろう。これを確認するには 基本テク で示したポリライン複数本描画スクリプトを利用できる。下記のリスト内の内容を修正すると、それにつれて曲線の色が変わることがわかる:axes.prop_cycle: cycler('color', ['deeppink', 'pink', 'b', 'g', 'r', 'c', 'm', 'y', 'k'])
LaTeX 周りの設定は要研究。特にフォントの指定は大切そうだ。
ハードコピーバックエンドのデフォルト値を
savefig.format
で設定できる。savefig.format: png # png, ps, pdf, svg