「Matplotlibの目盛間隔をサクッと調整したい」「複雑な解説よりも、すぐ使える例が欲しい」という方に向けて、シンプルなコード例を集めました。定期的な数値刻みはもちろん、日付軸・対数軸・特定位置だけに目盛を表示するなど、バラエティ豊かなパターンを紹介します。
基本:MultipleLocator
でシンプルに等間隔調整
下記のようにMultipleLocator
を使えば、等間隔な目盛を即設定できます。
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
x = [0, 1, 2, 3, 4, 5]
y = [v**2 for v in x]
fig, ax = plt.subplots()
ax.plot(x, y, marker='o')
# X軸を0.5刻みで表示
ax.xaxis.set_major_locator(MultipleLocator(0.5))
# Y軸を1.0刻みで表示
ax.yaxis.set_major_locator(MultipleLocator(1.0))
plt.show()
実行結果:
固定値だけ表示したい場合:FixedLocator
特定の値のみに目盛を振りたい時はFixedLocator
が有効です。
from matplotlib.ticker import FixedLocator
fig, ax = plt.subplots()
ax.plot(x, y, marker='o')
# X軸の目盛を特定位置に固定
ax.xaxis.set_major_locator(FixedLocator([0, 2, 3.5, 5]))
plt.show()
これで指定リストの値にのみ目盛が表示されます。
実行結果:
補助目盛(マイナー目盛)の追加
主要目盛だけでなく、より細かい補助目盛(マイナー目盛)を表示することで、精度の高い読み取りが可能になります。
# 主要目盛は1.0刻み、マイナー目盛は0.2刻み
ax.yaxis.set_major_locator(MultipleLocator(1.0))
ax.yaxis.set_minor_locator(MultipleLocator(0.2))
これで補助的な細かい目盛が追加され、グラフの精緻さが向上します。
実行結果:
日付軸の目盛調整:AutoDateLocator
など
日時データを表示する場合は日付専用のLocatorを使います。AutoDateLocator
とDateFormatter
を組み合わせると、日付ベースの目盛間隔も簡単にコントロールできます。
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime, timedelta
dates = [datetime(2021,1,1) + timedelta(days=i) for i in range(10)]
values = [i for i in range(10)]
fig, ax = plt.subplots()
ax.plot(dates, values, marker='o')
# 日付軸に自動で適切な間隔を設定
ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gcf().autofmt_xdate() # 日付表示を回転調整
plt.show()
自動調整されるので、グラフの拡大・縮小に応じて最適な日付間隔が保たれます。
実行結果:
対数軸や非線形スケールでも調整可能
対数軸を使う場合でも目盛調整が可能です。たとえば、対数軸で主要目盛を特定のパワーごとに表示したい場合はLogLocator
を利用します。
import numpy as np
from matplotlib.ticker import LogLocator
x = np.logspace(0, 3, 100)
y = x**2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xscale('log') # 対数スケール設定
ax.xaxis.set_major_locator(LogLocator(base=10.0, numticks=5))
plt.show()
これで対数スケールでも見やすい目盛間隔を用意できます。
実行結果:
まとめ
- 等間隔表示:
MultipleLocator
で即設定 - 特定点表示:
FixedLocator
で思い通りの位置に - マイナー目盛追加:主要目盛+補助目盛で細かく表示
- 日付軸:
AutoDateLocator
やDateFormatter
で柔軟に対応 - 対数軸:
LogLocator
を活用
上記例をそのまま活用し、あなたのMatplotlib図表を思い通りの間隔に仕上げてみてください。