rcParamsの使い方まとめ【matplotlib】

matplotlibのrcParamsの記事のアイキャッチmatplotlib

matplotlibにはrcParamsというものがあり、
rcParamsではmatplotlibに関する様々な設定を行うことができます。

rcParamsを使ってみる

個別に設定

rcParamsは辞書形式でパラメータを扱い、
例えば線のスタイルをドット線にしたければ、以下のようにして実現することが出来ます。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-4,4,0.01)
y = np.exp(x)

plt.rcParams['lines.linestyle'] = 'dashed' 
plt.plot(x,y)
plt.show()
ドット線のグラフ

まとめて設定

設定したい項目がたくさんある場合はコードも見にくく、面倒くさいので、plt.rcParams.update()でまとめて変更しちゃいましょう!

設定もJSON感覚で書けて良いですね
まぁJSONではありませんが…

import matplotlib.pyplot as plt
import numpy as np

x= np.arange(-4,4,0.01)
y = np.tanh(x)

config = {
    "lines.linestyle":"dotted",
    "lines.linewidth":10,
    "xtick.labelbottom":False,
    "xtick.labeltop":True,
    "ytick.labelleft":False,
    "ytick.labelright":True
}

plt.rcParams.update(config)
plt.plot(x,y)
plt.show()

設定可能な項目一覧

単にprintを使うだけで、一覧を確認することができます。

import matplotlib.pyplot as plt

print(plt.rcParams)


いちいち出力するのは嫌だという方はこちらをご覧ください。

matplotlib — Matplotlib 3.4.1 documentation

rcParamsでの設定と引数などで設定することの違い

rcParamsは便利ですが、実際のところ同様のことがほとんど、関数の引数等から設定することで実現することができます。

rcParamsと関数の引数などから設定する場合ではどのような違いがあるのでしょうか??

それは
rcParamsはグローバルであり、
関数の引数などはローカルである
ということです。

具体的には
rcParamsで設定するとそれ以降の全てのグラフに対して適応されますが、
関数の引数などではまさにその関数で行うことにしか適応されません。

プログラム全体のグラフを変更したい場合はrcParamsを使い、
少ししかグラフを作らない時や一部のグラフのみを変更したい場合は関数の引数などを使うと良いと思います。

デフォルトを変更

rcParamsによって設定を行なったとしても、デフォルトが変更されるわけではないので、別の時にグラフを作っても、変更は残っていません

デフォルトを変更するには matplotlibrc という設定ファイルを編集する必要があり、
matplotlibrcがあるpathは以下のコードによって調べることができます。

import matplotlib

matplotlib.matplotlib_fname()
#各自のmatplotlibrcの場所が表示される

matplotlibrcを開いてみると以下のような設定がズラリと並んでいます。
試しにlines.linestyledashedに変更してみましょう。

matplotlibrcの内容

変更後にグラフを表示してみると、確かに設定が反映されていることがわかります。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-4,4,0.01)
y = np.tanh(x)

plt.plot(x,y)
ドット線グラフ

変更が反映されなければ、再起動してみてください

コメント

タイトルとURLをコピーしました