Pythonによるデータ分析をする際にグラフなどの可視化でよく利用されるmatplotlibでグラフの軸の範囲を設定する方法を解説します。
Contents
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()
軸を逆転させる方法
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()
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()
画面にフィットさせたい場合 ‘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()
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()
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。