概要
こんにちは、すのくろです。
Pythonのmatplotlibでグラフを作成するときにグラフの装飾(軸、凡例、図のサイズ、フォント, etc)を図のプロット時に毎回コードを足して書いていることが面倒だと感じたことはありませんか?
私もそう思いました。毎回コピペでコードを持ってきていたため単純にコード量が多くなっていることが少し嫌でした。
そこで、今回はそのグラフの装飾を初期に設定することで、毎回記述しなくても良い方法を見つけたので、その方法を紹介したいと思います。
内容は、下記の通りです。
- 図のサイズ、解像度の設定
- フォント設定
- 軸周りの設定
- 凡例の設定
- マーカーの設定
具体的な例としては、下記のコードを初めに実行しておくことで、その後に作成するグラフで指定の装飾がデフォルトで反映されるようになります。
# 1. 図のサイズ、解像度の設定
plt.rcParams['figure.figsize'] = (10, 5)
plt.rcParams['figure.dpi']= 160
# 2. フォント設定
plt.rcParams['font.size'] = 14
plt.rcParams['font.family']= 'sans-serif'
plt.rcParams['font.sans-serif'] = 'Arial'
# 3. 軸周りの設定
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
plt.rcParams['xtick.major.width'] = 1.2
plt.rcParams['ytick.major.width'] = 1.2
plt.rcParams['axes.linewidth'] = 1.2
plt.rcParams['axes.grid']=True
plt.rcParams['grid.linestyle']='--'
plt.rcParams['grid.linewidth'] = 0.3
# 4. 凡例の設定
plt.rcParams["legend.markerscale"] = 2
plt.rcParams["legend.fancybox"] = False
plt.rcParams["legend.framealpha"] = 1
plt.rcParams["legend.edgecolor"] = 'black'
# 5. マーカーの設定
plt.rcParams["lines.markeredgecolor"] = "black"
plt.rcParams["lines.markeredgewidth"] = 0.5
それでは、一つづつやっていきましょう!
下準備
初めに、今回グラフ描画を紹介するためのデータ類の下準備をしておきます。
ライブラリのインポート
# 数値計算やデータフレーム操作に関するライブラリをインポートする
import numpy as np
import pandas as pd
# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
%matplotlib inline
ここはいつも通り、基本ライブラリのインポートで、コピペでOKです。
グラフ用データの作成
続いて、グラフ描画用のデータを作成しておきます。
今回は、「y1」, 「y2」としてランダムで10個のデータをnumpyで作成しました。
あとはx軸用の「x」を作成しました。
# グラフ用データの作成
x = np.arange(10)
y1 = np.random.randint(1, 10, 10)
y2 = np.random.randint(1, 10, 10)
初期のグラフの確認
ここで、初期設定のグラフを作成してみましょう。
matplotlibでマーカー付き折れ線グラフと凡例を作成します。
plt.plot(x, y1, "o-", label="y1")
plt.plot(x, y2, "o--", label="y2")
plt.legend()
初期だとこんな感じですね。
図のサイズ、解像度の設定
それでは、初期設定の変更を行い、少しずつグラフの変化も確認していきましょう。
初めに、図のサイズと解像度を設定します。
初期設定を変えるためには、
plt.rcParams['OOOO.XXXX']
OOOO: 系列名
XXXX: 系列の詳細
と言ったものを実行します。
今回の図のサイズ変更、解像度の変更であれば下記になります。
# 1. 図のサイズ、解像度の設定
plt.rcParams['figure.figsize'] = (10, 5)
plt.rcParams['figure.dpi']= 160
上記を実行してから再度図をプロットしてみます。
plt.plot(x, y1, "o-", label="y1")
plt.plot(x, y2, "o--", label="y2")
plt.legend()
図のサイズ・解像度が変更され、それと共に文字やマーカーの大きさの縮尺も変わったことが確認できました。
フォント設定
次に、フォント設定の変更です。
# 2. フォント設定
plt.rcParams['font.size'] = 14
plt.rcParams['font.family']= 'sans-serif'
plt.rcParams['font.sans-serif'] = 'Arial'
例えばこのような形で、フォントのサイズ、書式を変更しています。
変更後のグラフ↓
若干フォントサイズが大きくなりました。この辺りは好みで数値変更してください。
軸周りの設定
次に、縦軸・横軸の補助線等の追加の例です。
# 3. 軸周りの設定
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
plt.rcParams['xtick.major.width'] = 1.2
plt.rcParams['ytick.major.width'] = 1.2
plt.rcParams['axes.linewidth'] = 1.2
plt.rcParams['axes.grid']=True
plt.rcParams['grid.linestyle']='--'
plt.rcParams['grid.linewidth'] = 0.3
変更後のグラフ↓
凡例の設定
次に凡例のボックスの設定です。
凡例内のマーカーサイズや枠線などを変更しておきます。
# 4. 凡例
plt.rcParams["legend.markerscale"] = 2
plt.rcParams["legend.fancybox"] = False
plt.rcParams["legend.framealpha"] = 1
plt.rcParams["legend.edgecolor"] = 'black'
変更後のグラフ↓
マーカーの設定
最後に、マーカーの変更を設定してみます。
自分はマーカーのエッジは黒の方が好みなので、「markeredgecolor」を黒で設定しています。
# 4. マーカー設定
plt.rcParams["lines.markeredgecolor"] = "black"
plt.rcParams["lines.markeredgewidth"] = 0.5
変更後のグラフ↓
まとめ
今回は、Pythonのmatplotlibでグラフを作成時に、
グラフの装飾(軸、凡例、図のサイズ、フォント, etc)を初期設定しておく方法を紹介しました。
他にも色んな箇所の設定が同様の方法で可能ですので、
自分なりのグラフのデザイン用のコードを固めて作っておいて冒頭で実行してあげれば、自分オリジナルの装飾で常に統一したグラフ作成が簡単に行えるようになります!
Pythonを中心としたプログラミングをより体系的に学びたいと言う方向けに、おすすめのオンラインスクールを2つ厳選して紹介していますので、こちらもよければご覧ください!
以上、ここまでお読みいただき、ありがとうございました!
コメント