Matplotlibの軸の設定

Matplotlibの軸の設定#

※記事内に商品プロモーションを含むことがあります。

公開日

このページではMatplotlibの軸の設定について解説します。

軸のラベル#

軸にラベルを表示するには、x軸ではax.set_xlabel()メソッド、y軸ではax.set_ylabele()メソッドを使用します。以下に例を示します。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.scatter([1, 2, 3], [4, 5, 6])
ax.set_xlabel("X axis")
ax.set_ylabel("Y axis")
plt.show()
../_images/2a229a58ba7affa5ba1416fcf4f1ce372cb412813f1a6bd37f8884beded8ff20.png

また、ax.set_xlabel(), ax.set_xlabel()メソッドの主なオプションを以下に示します。

オプション

説明

labelpad

float

ラベルと軸の距離(デフォルト:4)

loc

str

ラベルの位置。'center'(デフォルト)、'left', 'right'から選択

color

str

文字の色

size

float/str

文字の大きさ

fig, ax = plt.subplots()
ax.scatter([1, 2, 3], [4, 5, 6])
ax.set_xlabel("X axis", labelpad=20, loc="left")
ax.set_ylabel("Y axis", color="red", size=15)
plt.show()
../_images/9245a864972c583f55aacf8cfb398ede5fdf431a2c50a33d6c506e03bb8c9a39.png

軸の範囲#

軸の範囲を指定するには、x軸ではax.set_xlim()メソッド、y軸ではax.set_ylim()メソッドを使用します。最初の引数に軸の下限値を、2番目の引数に上限値を与えます。

fig, ax = plt.subplots()
ax.scatter([1, 2, 3], [4, 5, 6])
ax.set_xlim(-10, 10)
ax.set_ylim(-10, 10)
plt.show()
../_images/a392b11155e31caa9c83318c693a42af94af00306c986f257177695b1eaf3e76.png

軸の下限値か上限値の片方のみ指定したい場合、自動的に決めて欲しい側にNoneを与えます。

fig, ax = plt.subplots()
ax.scatter([1, 2, 3], [4, 5, 6])
ax.set_xlim(None, 10)
ax.set_ylim(-10, None)
plt.show()
../_images/366fe668e98864e904a36a6f6a54bc66fc2e4e843303290b5a03a7a0f8905dbd.png

また、下限値を上限値より大きくした場合、軸が反転します。以下はx軸を反転させた例です。

fig, ax = plt.subplots()
ax.scatter([1, 2, 3], [4, 5, 6])
ax.set_xlim(10, -10)
ax.set_ylim(-10, 10)
plt.show()
../_images/6eb632b961d79c0e55bdf05241f68dbae0cd4ad92d00ebb2df8fe502a804f360.png

複数の軸#

2つのy軸があるグラフを作成する場合、ax.twinx()メソッドを用います。反対に、2つのx軸があるグラフを作成する場合、ax.twiny()メソッドを用います。それぞれのメソッドの戻り値はAxesオブジェクトとなります。それぞれ例を以下に示します。

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 4], label="Left axis")
ax2 = ax.twinx()
ax2.scatter([1, 2, 3], [16, 14, 15], label="Right axis", c="red")
fig.legend()
plt.show()
../_images/48ac96271817877e56b71a7e8e45d0e74e5930c2ec6152423d6fdd9c5ede4011.png
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 3, 2] , label="Lower axis")
ax2 = ax.twiny()
ax2.scatter([11, 12, 13], [3, 2, 1.5], label="Upper axis", c="red")
fig.legend()
plt.show()
../_images/3f64f6f9e75a7bf336be94c72bf90b897399a6045c1371b657ae8b39807e6233.png

対数グラフ#

軸を対数にするには、x軸ではax.set_xscale()メソッド、y軸ではax.set_yscale()メソッドを使用します。これらのメソッドのオプションに"log"を指定します。以下はx軸を対数にした例です。

fig, ax = plt.subplots()
ax.scatter([1, 10, 100], [4, 5, 6])
ax.set_xscale("log")
plt.show()
../_images/9c71e07a3aaa46914284d7615a1d95b1c972196a19296d38e8acb450aca47ec6.png

また、baseオプションで対数の「底」を指定できます。以下は底を2とした例です。x軸は2の累乗(2^1, 2^2, 2^3, 2^4)=(2, 4, 8, 16)となっています。

fig, ax = plt.subplots()
ax.scatter([2, 4, 8, 16], [4, 5, 6, 7])
ax.set_xscale("log", base=2)
plt.show()
../_images/899b040c0cdbab192a61b78c3ca856287372ab3174d971dfa55ac9852342cc14.png