[Python][Matplotlib] Customizing matplotlibの和訳(matplotlibrcファイルの設定について)

Matplotlibで設定を変更するときに、matplotlibrcファイルを直接いじることがある。その辺りの説明が書いてあるページ

Customizing matplotlib — Matplotlib 2.0.2 documentation

を読みつつ和訳した。
ざっくり和訳であることをご了承下さい。原文の意味は変えてないはず。

訪問日時:2018年7月15日
======================================

Using style sheets(スタイルシートを使う)

styleパッケージを使えばプロットスタイルを簡単に切り替えることができる.同じパラメータをmatplotlibrcファイルに与えれば良い.

matplotlibには最初から用意されているスタイルがある.例えば,ggplotというスタイルがあり,これはggplot(Rでよく使われるパッケージ)にならっている.このスタイルを使うには,次のコードを追加すればよい.

>>> import matplotlib.pyplot as plt
>>> plt.style.use('ggplot')

使用できるすべてのスタイルを表示するには,次のコードを使う.

>>> print(plt.style.available)

Defining your own style(スタイルシートを定義する)

カスタムスタイルを作り,そのpathやURLとともにstyle.useを呼ぶことでそのカスタムスタイルを使うことができる.さらに,.mplstyleファイルをmpl_configdir/stylelibに追加すれば,style.use()として自分のカスタムスタイルを使うことができる.mpl_configdirはデフォルトでは~/.config/matplotlibにあるが,matplotlib.get_configdir()で場所を確認することもできる(このディレクトリを作成しなければならないときもある).MPLCONFIGDIR環境変数を設定することでmatplotlibがstylelib/フォルダを探すディレクトリを変えることもできる.詳しくはmatplotlib configuration and cache directory locationsを参照のこと.

mpl_configdir/stylelibにあるカスタムスタイルシートはmatplotlibによって定義された同名のスタイルシートを無視することに注意.

例えば,mpl_configdir/stylelib/presentation.mplstyleを次の内容で作成したいとする.

axes.titlesize : 24
axes.labelsize : 20
lines.linewidth : 3
lines.markersize : 10
xtick.labelsize : 16
ytick.labelsize : 16

そして,あるプロットをある書類に合うようにデザインして,プレゼンテーションでよく見えるようなものにしたなら,次のコードを足せばよい.

>>> import matplotlib.pyplot as plt
>>> plt.style.use('presentation')

Composing styles(スタイルを組み合わせる)

スタイルシートは組み合わせられるように設計されている.そのため,色を調整するスタイルシートと,プレゼンテーションのために要素のサイズを変えるスタイルシートを,別々に用意することができる.これらのスタイルはスタイルのリストを渡すことで簡単に組み合わせることができる.

>>> import matplotlib.pyplot as plt
>>> plt.style.use(['dark_background', 'presentation'])

リスト内の左のスタイルで定義された値は,より右のスタイルの値で上書きされることに注意.

Temporary styling(スタイルの一時的な変更)

あるスタイルを,全体ではなくコードの一部分で使いたいなら,styleパッケージのcontextマネージャを使ってスタイルの変更を特定のスコープに限定すれば良い.スタイルの変更を分離したいなら,次のように書くこともできる.

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>>
>>> with plt.style.context(('dark_background')):
>>>     plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o')
>>>
>>> # Some plotting code with the default style
>>>
>>> plt.show()

matplotlib rcParams(matplotlibライブラリのrcParamsオブジェクト)

Dynamic rc settings(動的なrc設定)

デフォルトのrc設定をpythonスクリプトやpythonシェルで動的に変更することもできる.rc設定はすべてmatplotlib.rcParamsと呼ばれる辞書風の変数に保存されている.これはmatplotlibパッケージに対してグローバルである.rcParamsは直接変更することができる.例えば

import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 2
mpl.rcParams['lines.color'] = 'r'

Matplotlibではrc設定を変更するための便利な関数をいくつか用意している.matplotlib.rc()コマンドを使うと,ある一つのグループに属する複数の設定を一回でまとめて変更することができる.キーワード変数を使って

import matplotlib as mpl
mpl.rc('lines', linewidth=2, color='r')

matplotlib.rcdefaults()コマンドは設定をmatplotlib標準のデフォルト設定に戻す.

rcParamsに値を設定するとき,ある程度の制限がある.詳しくはmatplotlib.rcsetup を参照のこと.

The matplotlibrc file(matplotlibrcファイル)

Matplotlibではmatplotlibrc設定ファイルを使ってすべての設定を変更することができる(これをrc設定やrcパラメータと呼ぼう).Matplotlibにおけるほとんどすべての設定のデフォルトを制御できる.例えばfigure size, dpi, line width, color, style, axis, grid properties, text, font propertiesなど.Matplotlibでは次の順番でmatplotlibrcを四つの場所から探す.

  1. current working directory(すべてに適応したくない特定のカスタマイズを行うために使う)
  2. $MATPLOTLIBRC/matplotlibrc.
  3. ユーザー固有の場所.プラットフォームに依存して次のように変わる.
  4. INSTALL/matplotlib/mpl-data/matplotlibrc.

ここでINSTALLはLinuxなら/usr/lib/python3.5/site-packages,WindowsならおそらくC:\Python35\Lib\site-packagesである.Matplotlibをインストールするとこのファイルは上書きされるので,もし設定を保存しておきたいなら,別の場所にファイルを移しておくのがよい.

いま読み込んでいるmatplotlibrcファイルの場所を知るには次のようにする.

>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/home/foo/.config/matplotlib/matplotlibrc'

以下にmatplotlibrcファイルの例を示す.

A sample matplotlibrc file(matplotlibrcファイルのサンプル)

(省略)