Matplotlib での目盛り数の設定
Suraj Joshi
2023年1月30日
2020年12月21日

このチュートリアルでは、Matplotlib.ticker.MaxNLocator
クラスと set_ticks()
メソッドを用いて、Matplotlib 図の目盛り数を設定する方法を説明します。
import math
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,2*math.pi,100)
y=np.sin(x)
fig,axes=plt.subplots(1,1)
axes.plot(x, y)
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
出力:
これは、デフォルトの目盛り数が設定された Matplotlib の図を示しています。異なるメソッドを使って目盛りの数を変更します。
Matplotlib.ticker.MaxNLocator
クラスを用いて目盛り数を設定する
Matplotlib.ticker.MaxNLocator
クラスは、ビンの最大数を表す nbins
という名前のパラメータを定義します。目盛りの数はビンの数よりも 1つ多くなります。したがって、Matplotlib.ticker.MaxNLocator
クラスの nbins
パラメータは、目盛りの数が nbins+1
を超えることはできないことを意味します。
import math
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
x=np.linspace(0,2*math.pi,100)
y=np.sin(x)
fig,axes=plt.subplots(1,1)
axes.plot(x, y)
axes.yaxis.set_major_locator(MaxNLocator(5))
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
出力:
これは、図の Y 軸の最大ビン数を 5 に設定します。同様に、X 軸にも目盛りを設定できます。
また、if
ステートメントで条件を指定して、条件を満たす目盛りのみを選択することもできます。
import math
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,2*math.pi,100)
y=np.sin(x)
fig,axes=plt.subplots(1,1)
axes.plot(x, y)
for i, tick in enumerate(axes.xaxis.get_ticklabels()):
if i % 2 != 0:
tick.set_visible(False)
for i, tick in enumerate(axes.yaxis.get_ticklabels()):
if i % 2 != 0:
tick.set_visible(False)
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
出力:
X 軸と Y 軸の偶数位置の目盛りのみに目盛りラベルを設定します。目盛りラベルは削除されますが、目盛りは残っています。条件を変更して目盛りラベルをカスタマイズすることができます。
Matplotlib.axis.Axis.set_ticks()
メソッドを使って目盛り数を設定する
Python の Matplotlib.axis.Axis.set_ticks()
を使って軸を設定することもできます。
import math
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,2*math.pi,100)
y=np.sin(x)
fig,axes=plt.subplots(1,1)
axes.plot(x, y)
axes.xaxis.set_ticks([0,1,3,4,5,6])
axes.yaxis.set_ticks(np.linspace(-1,1,5))
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()
出力:
set_ticks()
メソッドで指定した目盛り数と目盛り値を設定します。set_ticks()
メソッドには NumPy 配列かリストを渡します。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn関連記事 - Matplotlib Ticks
- Matplotlib で X 軸の目盛りラベルテキストを回転させる方法
- Matplotlib で目盛りラベルのフォントサイズを設定する方法
- Matplotlib で軸テキストの目盛りや目盛りラベルを非表示にする方法