グラフを装飾
matplotlib.pyplotで作成したグラフを装飾する方法をまとめます。
グラフ表示するデータの準備
最初に以下のコードを実行し、表示させるグラフのデータを準備します。モジュールのインポートも一緒に実行しています。
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 400) y = np.sin(x**2)
以下の例では、subplots関数を用いてグラフオブジェクトを生成しています。subplots関数を用いたグラフの描画については、以下の記事を参照してください。
グラフタイトル・軸ラベルの設定
Axesオブジェクトのsetメソッドを用いて以下のプロパティを設定することで、グラフのタイトルと各軸ラベルを指定できます。
property | 内容 |
title | グラフタイトル |
xlabel | x軸ラベル |
ylabel | y軸ラベル |
例:
fig, ax = plt.subplots() ax.set(xlabel = "x label", ylabel = "y label", title="example") ax.plot(x, y)
出力:
グラフのタイトルと、各軸にラベルが表示されました。
また、Axesオブジェクトのset_xlabel、set_ylabel、set_titleメソッドを用いても同じことができます。
例:
fig, ax = plt.subplots() ax.set_xlabel("x label") ax.set_ylabel("y label") ax.set_title("example") ax.plot(x, y)
軸範囲の設定
Axesオブジェクトのsetメソッドを用いて以下のプロパティを設定することで、表示する軸の範囲を指定できます。
property | 内容 |
xlim | x軸の範囲 (下限, 上限) |
ylim | y軸ラベル (下限, 上限) |
例:
fig, ax = plt.subplots() ax.set(xlim=(0,3), ylim = (-5,2)) ax.plot(x, y)
出力:
表示するx軸の範囲を0~3に、y軸の範囲を-5~2に設定することができました。
複数グラフを重ねて表示
Axesオブジェクトに対してグラフ描画メソッド(以下の例ではplot)を複数回実行することで、複数のグラフを重ねて表示することができます。
例:
fig, ax = plt.subplots()
ax.plot(x, y)
ax.plot(x, 2*y)
出力:
凡例の表示
Axesオブジェクトのlegendメソッドを用いて、グラフの凡例を表示することができます。
但し、グラフ描画メソッド実行時に、オプションでラベルを設定しておく必要があります。
例:
fig, ax = plt.subplots() ax.plot(x, y, label="y") ax.plot(x, 2*y, label="2y") ax.legend()
出力:
設定したラベルが凡例として表示されました。
凡例の位置は、legendメソッドのlocオプションで文字列または整数コードを設定することで指定できます。locオプションで指定できる内容は以下の通りです。
文字列 | コード |
best | 0 |
upper right | 1 |
upper left | 2 |
lower left | 3 |
lower right | 4 |
right | 5 |
center left | 6 |
center right | 7 |
lower center | 8 |
upper center | 9 |
center | 10 |
例:
ax.legend(loc="lower right")
出力:
グリッドの追加
Axesオブジェクトのgridメソッドを用いて、グラフ内にグリッドを表示することができます。
例:
fig, ax = plt.subplots() ax.plot(x, y) ax.grid()
出力:
gridメソッドのlsオプションでグリッドの線種も指定できます。
例:グリッドを点線にする
ax.grid(ls="--")
出力: