【Python/Matplotlib】横軸を日付データ(datetime)にする方法

Pythonモジュール「Matplotlib」でグラフの横軸(x軸)を日付データ(datetime)にするには、時系列データ用のLocatorと Formatterを使用します。

サンプルコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 適当にデータを生成
time_range = 30     # 30日分
dates = [datetime.datetime(2018,10,1) + datetime.timedelta(days=i) for i in range(time_range)]
vals = [np.sin(2 * np.pi * i / 240) for i in range(time_range)]

ax = plt.subplot()
ax.plot(dates, vals)

# Formatterでx軸の日付ラベルを月・日に設定
xfmt = mdates.DateFormatter("%m/%d")

# DayLocatorで間隔を日数に
xloc = mdates.DayLocator()


ax.xaxis.set_major_locator(xloc)
ax.xaxis.set_major_formatter(xfmt)

# x軸の範囲
ax.set_xlim(datetime.datetime(2018,10,1), datetime.datetime(2018,10,10))
ax.grid(True)
plt.show()
【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。

コメント