matplotlibのgrid機能を使うと、グラフの可読性が向上し、データポイントの位置を正確に把握できます。本記事では、基本的な使い方から細かいカスタマイズまで、matplotlibのgridの設定方法を詳しく解説します。
gridとは
matplotlibのgridは、プロットエリアに格子線を表示する機能です。これにより、データポイントの位置を視覚的に把握しやすくなり、グラフの読み取り精度が向上します。
基本の設定
matplotlibでgridを表示するには、plt.grid()
メソッドを使用します。デフォルトでは、グリッド線は薄い灰色の破線で表示されます。
以下のコードは、基本的なgridの表示方法を示しています。
pythonimport matplotlib.pyplot as plt
import numpy as np
# データの準備
x = np.linspace(0, 10, 100)
y = np.sin(x)
# プロットの作成
plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.title('Sine Wave')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# グリッドの表示
plt.grid()
plt.show()
# 出力: 基本的なグリッド線が表示されたサイングラフ

各種設定
グリッド線の表示/非表示
plt.grid()
のvisible
パラメータを使用して、グリッド線の表示/非表示を切り替えられます。
python# グリッド線を表示
plt.grid(visible=True)
# グリッド線を非表示
plt.grid(visible=False)
# 出力: グリッド線の表示/非表示が切り替わる
メジャーグリッドとマイナーグリッド
which
パラメータを使用して、メジャーグリッド、マイナーグリッド、または両方を表示できます。which
パラメータには以下の値を指定できます:
'major'
:主要な目盛り(デフォルト)に対応するグリッド線のみを表示します'minor'
:補助的な目盛りに対応するグリッド線のみを表示します'both'
:主要な目盛りと補助的な目盛りの両方に対応するグリッド線を表示します
マイナーグリッドを表示するには、マイナー目盛りも有効にする必要があります。which='minor'
またはwhich='both'
を指定する場合は、plt.minorticks_on()
を呼び出してマイナー目盛りを有効にしてください。マイナー目盛りが有効になっていない場合、マイナーグリッド線は表示されません。
pythonimport matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.title('Major and Minor Grids')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# マイナー目盛りを有効にする
plt.minorticks_on()
# メジャーグリッドとマイナーグリッドを設定
plt.grid(which='major', color='gray', linestyle='-', linewidth=0.5)
plt.grid(which='minor', color='lightgray', linestyle=':', linewidth=0.5)
plt.show()
# 出力: メジャーグリッド(実線)とマイナーグリッド(点線)が表示されたグラフ

軸ごとのグリッド線設定
axis
パラメータを使用して、x軸、y軸、または両方の軸にグリッド線を表示できます。
pythonimport matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(10, 4))
plt.subplot(1, 3, 1)
plt.plot(x, y)
plt.title('X axis grid')
plt.grid(axis='x') # x軸のみグリッド線を表示
plt.subplot(1, 3, 2)
plt.plot(x, y)
plt.title('Y axis grid')
plt.grid(axis='y') # y軸のみグリッド線を表示
plt.subplot(1, 3, 3)
plt.plot(x, y)
plt.title('Both axes grid')
plt.grid(axis='both') # 両方の軸にグリッド線を表示
plt.tight_layout()
plt.show()
# 出力: 3つのサブプロットで異なる軸のグリッド線設定を示すグラフ

グリッド線のスタイル設定
グリッド線の色、線種、太さなどをcolor
、linestyle
、linewidth
パラメータで設定できます。
pythonimport matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.title('Customized Grid')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# グリッド線のスタイルをカスタマイズ
plt.grid(color='blue', linestyle='--', linewidth=0.5)
plt.show()
# 出力: 青色の破線でグリッド線が表示されたグラフ

zorderの設定
zorder
パラメータを使用して、グリッド線の描画順序を設定できます。値が小さいほど背面に描画されます。
pythonimport matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y, linewidth=2, zorder=3) # プロットを前面に表示
plt.title('Grid with zorder')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# グリッド線を背面に表示
plt.grid(color='gray', linestyle='-', linewidth=0.5, zorder=0)
plt.show()
# 出力: グリッド線が背面に、プロット線が前面に表示されたグラフ

透明度の設定
alpha
パラメータを使用して、グリッド線の透明度を設定できます。
pythonimport matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(8, 4))
plt.plot(x, y)
plt.title('Grid with Alpha')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 透明度を設定したグリッド線
plt.grid(color='black', linestyle='-', linewidth=0.5, alpha=0.3)
plt.show()
# 出力: 透明度が設定されたグリッド線が表示されたグラフ

まとめ
matplotlibのgrid機能は、データの視覚化を向上させるための重要なツールです。本記事では、基本的な使い方から詳細なカスタマイズまで解説しました。
gridの主な設定ポイントは以下の通りです:
plt.grid()
で基本的なグリッド線を表示できるvisible
パラメータでグリッド線の表示/非表示を制御できるwhich
パラメータを使用してメジャーグリッド、マイナーグリッド、または両方を表示できるaxis
パラメータでx軸、y軸、または両方の軸にグリッド線を表示できるcolor
、linestyle
、linewidth
パラメータでグリッド線のスタイルをカスタマイズできるzorder
パラメータでグリッド線の描画順序を設定できるalpha
パラメータでグリッド線の透明度を調整できる
これらの設定を適切に組み合わせることで、データの特性に合わせた見やすいグラフを作成できます。グラフの可読性を高めるためにgrid機能を活用しましょう。
さらに詳細な設定は公式サイトを参照ください。