Matplotlibの目盛りの設定#
公開日
Matplotlibの目盛りの設定(補助目盛りや目盛り線など)について解説します。
補助目盛り#
補助目盛りを表示するには、Axes.minorticks_on()
メソッドを用います。
import matplotlib.pyplot as plt
x = [1, 3, 2]
# 補助目盛りなし
fig, ax = plt.subplots()
ax.plot(x)
plt.show()
# 補助目盛りあり
fig, ax = plt.subplots()
ax.plot(x)
ax.minorticks_on()
plt.show()
![../_images/e08bf58ef7e96139abd18e9f283979ae33775530c2f1a673db460f3654afad3e.png](../_images/e08bf58ef7e96139abd18e9f283979ae33775530c2f1a673db460f3654afad3e.png)
![../_images/9608b25b0214ddb1b837e00f577c69da34761ad7a6a62d3c8b4b26ba728bc5b8.png](../_images/9608b25b0214ddb1b837e00f577c69da34761ad7a6a62d3c8b4b26ba728bc5b8.png)
目盛り線#
目盛り線を引くには、Axes.grid()
メソッドを用います。このメソッドの主なオプションは以下の通りです。
オプション |
型 |
説明 |
---|---|---|
axis |
str |
軸を選択('both', 'x', 'y') |
which |
str |
目盛り線の種類を指定。'major'(主目盛り)、'minor'(補助目盛り)、'both'(両方の目盛り) |
linewidth |
float |
線の太さ |
color |
str |
線の色 |
linestyle |
str |
線の種類 |
axis
オプションを使ってx軸のみ目盛り線を引く例を以下に示します。
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.grid()
plt.show()
# x軸のみ目盛り線を引く
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.grid(axis="x")
plt.show()
![../_images/a8cf7081da8221d2b7f1ff8d7aeb5d08c81693d08e7f91ec83139370ca5da1fc.png](../_images/a8cf7081da8221d2b7f1ff8d7aeb5d08c81693d08e7f91ec83139370ca5da1fc.png)
![../_images/1944b0d1073bb4e2d32667d83b09e18048147c823afef4b58bb810e4e4216d3c.png](../_images/1944b0d1073bb4e2d32667d83b09e18048147c823afef4b58bb810e4e4216d3c.png)
grid()
メソッドのwhich
オプションを指定しない場合、主目盛り線のみ引かれます。補助目盛りにも線を引くには、ax.minorticks_on()
で補助目盛りをONにした後、ax.grid(which="both")
を実行します。
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.minorticks_on() # 補助目盛りを表示する
ax.grid() # デフォルトでは主目盛り線のみ表示される
plt.show()
# 主目盛りと補助目盛りの両方に目盛り線を引く
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.minorticks_on()
ax.grid(which="both")
plt.show()
![../_images/5720131ee4c3d2d524d02e1284024d554bf57ca11ca484341331052b3e6f0eb3.png](../_images/5720131ee4c3d2d524d02e1284024d554bf57ca11ca484341331052b3e6f0eb3.png)
![../_images/5b98b222fadef450f5db18522f6346f5e2bff164d90ccd19bca59414c53ac9e1.png](../_images/5b98b222fadef450f5db18522f6346f5e2bff164d90ccd19bca59414c53ac9e1.png)
目盛り線の太さはlinewidth
オプション、色はcolor
オプション、種類はlinestyle
オプションでそれぞれ変更できます。例を以下に示します。
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.grid(linewidth=1.5, color="green", linestyle="--")
plt.show()
![../_images/3b49ab4237ccdc5ecc28bc220ba4b40721e71c43ad54090d408effe2a9dee1f8.png](../_images/3b49ab4237ccdc5ecc28bc220ba4b40721e71c43ad54090d408effe2a9dee1f8.png)
tick_params#
目盛りの詳細な設定をするには、Axes.tick_params()
メソッドを用います。このメソッドの主なオプションを以下に示します。
オプション |
型 |
説明 |
---|---|---|
axis |
str |
軸を選択('both', 'x', 'y') |
which |
str |
目盛り線の種類を指定。'major'(主目盛り)、'minor'(補助目盛り)、'both'(両方の目盛り) |
direction |
str |
目盛りの位置。'in', 'out', 'inout' |
length |
float |
目盛りの長さ |
width |
float |
目盛りの幅 |
color |
str |
目盛りの色 |
pad |
float |
目盛りと目盛りラベルの隙間 |
labelsize |
float |
目盛りラベルの大きさ |
labelcolor |
str |
目盛りラベルの色 |
colors |
str |
目盛りと目盛りラベルの色 |
zorder |
float |
描画する順序 |
labelrotation |
float |
目盛りラベルの回転角度(半時計回りに回転。単位は度) |
なお、Axes.tick_params()
メソッドで補助目盛りの設定をする場合、Axes.minorticks_on()
メソッドを実行する必要があります。
目盛りの向き#
目盛りの向きはdirection
オプションで指定できます。in
で内側、out
で外側(デフォルト)、inout
で両方となります。
# 内側
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(direction='in')
plt.show()
# 両方
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(direction='inout')
plt.show()
![../_images/99976dfe30644936c4705eb4b182d7932f3619f337f10c36bbf5ac2694bf2fa0.png](../_images/99976dfe30644936c4705eb4b182d7932f3619f337f10c36bbf5ac2694bf2fa0.png)
![../_images/1833f601bd32078b4979347882583971c899253b257b2e632fff5d23bc8d3e6c.png](../_images/1833f601bd32078b4979347882583971c899253b257b2e632fff5d23bc8d3e6c.png)
目盛りとラベルの色#
color
オプションでは目盛り線のみ、colors
オプションでは目盛り線と目盛りラベルの両方の色を変更できます。また、labelcolor
オプションでは、目盛りラベルのみ色を変更できます。
# 目盛り線を赤色に設定
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(color="red", width=3)
plt.show()
# 目盛り線と目盛りラベルを赤色に設定
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(colors="red", width=3)
plt.show()
# 目盛りラベルを赤色に設定
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(labelcolor="red", width=3)
plt.show()
![../_images/86f001e8bd56309395742aa40023900e7eafef341042e8fd036ff95eab50e1d3.png](../_images/86f001e8bd56309395742aa40023900e7eafef341042e8fd036ff95eab50e1d3.png)
![../_images/262de771c1d6d23de79b1ff23061b096ea11052c86c605aa9c18e824d8deffde.png](../_images/262de771c1d6d23de79b1ff23061b096ea11052c86c605aa9c18e824d8deffde.png)
![../_images/df1de121601cb603284741fc507662ccded7c36d117078bad24aae0f6344fe69.png](../_images/df1de121601cb603284741fc507662ccded7c36d117078bad24aae0f6344fe69.png)
目盛りラベルの回転#
labelrotation
オプションによって目盛りラベルを回転できます。半時計回りに回転し、単位は度です。
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(labelrotation=45)
plt.show()
![../_images/5af7f4a35aeb19c4ec621513bae6452cfcf81d40456cff7d56e5f60c021523a6.png](../_images/5af7f4a35aeb19c4ec621513bae6452cfcf81d40456cff7d56e5f60c021523a6.png)
x軸またはy軸のみの目盛りラベルを回転させる場合、ax.tick_params()
メソッドのaxis
オプションで指定します。
fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.tick_params(axis="x", labelrotation=45)
ax.tick_params(axis="y", labelrotation=-10)
plt.show()
![../_images/61edc4d272581aa498bbf9c32b2f4cd2b90d0b6dd132fcff1f0ff850f561b85d.png](../_images/61edc4d272581aa498bbf9c32b2f4cd2b90d0b6dd132fcff1f0ff850f561b85d.png)