matplotlib

【matplotlib】グラフの軸の範囲の設定方法

【matplotlib】グラフの軸の範囲の設定方法

Pythonによるデータ分析をする際にグラフなどの可視化でよく利用されるmatplotlibでグラフの軸の範囲を設定する方法を解説します。

xlim, ylimメソッドによる軸の範囲設定方法

グラフの軸を設定する場合には、xlimメソッドylimメソッドを使用して軸の範囲を設定することができます。

一般的な使用方法

一般的な軸の範囲設定方法について以下に例を示します。

xlimメソッドでは、x軸方向の最小値(xmin)と最大値(xmax)を引数に渡します。同様にylimメソッドでは、y軸方向の最小値(ymin)と最大値(ymax)を引数に渡します。

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 100)

# グラフ表示
plt.plot(x, np.sin(x))
# x軸の範囲を変更する
plt.xlim(-2, 12)
# y軸の範囲を変更する
plt.ylim(-1.5, 1.5)

plt.show()
matplotlib xlim ylim

軸を逆転させる方法

xlimやylimの便利な使用方法として、最大値、最小値の値を入れ替えると以下の例のように軸を反転させることができます。

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 100)

# グラフ表示
plt.plot(x, np.sin(x))
# x軸の範囲を変更する(反転)
plt.xlim(12, -2)
# y軸の範囲を変更する(反転)
plt.ylim(1.5, -1.5)

plt.show()
matplotlib xlim ylim 軸反転

axisメソッドによる軸の範囲設定方法

xlimメソッド、ylimメソッドとは別の方法として、axisメソッドでも軸の設定をすることができます。描画領域を設定するaxesメソッドとは異なりますので注意してください(isとesの違い)

axisメソッドは、後述する’tight’や’equal’といったオプションで軸の範囲を自動で設定することもできるので便利です。

一般的な使用方法

axisメソッドの一般的な軸の設定例を以下に示します。

axisメソッドには、[xmin, xmax, ymin, ymax]の値が設定されているリストを設定することで軸の範囲を指定することができます。

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 100)

# グラフ表示
plt.plot(x, np.sin(x))
# axisによる軸範囲設定 [xmin, xmax, ymin, ymax]
plt.axis([-2, 12, -1.5, 1.5])

plt.show()
matplotlib axis

画面にフィットさせたい場合 ‘tight’オプション

描画する数値の範囲にあわせて画面にフィットするように描画したい場合には、’tight‘オプションを使用すると便利です。

以下の例のようにaxisメソッドの引数に、’tight’を渡してあげることで画面にグラフをフィットさせることが可能です。

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 100)

# グラフ表示
plt.plot(x, np.sin(x))
# tightでグラフに軸をフィットさせる
plt.axis('tight')

plt.show()
matplotlib axis tight

x軸、y軸の値の比率をそろえたい場合 ‘equal’オプション

x軸とy軸の値の範囲が異なるとx軸とy軸の数値の比率が異なった状態で表示されます。x軸とy軸の数値の比率をそろえたい場合には’equal’オプションを使用します。

以下の例のようにaxisメソッドの引数に、’equal’を渡してあげることでx軸とy軸の値の比率をそろえることが可能です。

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 100)

# グラフ表示
plt.plot(x, np.sin(x))
# equalで軸の比率をそろえる
plt.axis('equal')

plt.show()
matplotlib axis equal

NumPy, pandas, matplotlib, scikit-learnといったデータ分析関連パッケージについて体系的に習得したい場合は「Pythonデータサイエンスハンドブック」が大変おすすめです。
matplotlibに関する使い方も豊富に掲載されていますので手元に置いておくと便利です。是非購入を検討してみてください。