環境設定

Matplotlib を利用するための環境をもっと細かく整備してみよう。

設定ファイル matplotlibrc 概要

Matplotlib 環境のユーザー設定ファイルについて記す。

  • Matplotlib が扱う、図の大きさや図形の色といった、ほとんど全てのプロパティーを指定するために設定ファイルというものを利用することができる。

  • 設定ファイル名は matplotlibrc である。

  • この設定ファイルによる設定のことを rc settings とか rc parameters とかと呼ぶ。

  • その設定ファイルのあるディレクトリーは、次の優先度で決まる。

    1. 作業ディレクトリー。

    2. ユーザーの環境依存のディレクトリー。

      • Windows 環境でもユーザーがわざわざ環境変数 HOME を設定している場合は、 Matplotlib はきちんとそのパスを参照してくれる。

      • 一度でも Matplotlib を利用すると、$HOME にフォルダー .matplotlib ができている。そこにテキストファイル matplotlibrc を自分で作成する。

    3. 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