再帰ルールを使用した Matplotlib の日付目盛りのカスタマイズ

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Matplotlib で再帰ルール (recurrence rules) を使用して日付目盛りを配置する方法を学びます。iCalender RFC では、日付のシーケンスを定義する再帰ルール (rrules) が指定されています。Matplotlib で rrules を使用して日付目盛りを配置することができます。この例では、5 回目の復活祭ごとにカスタム日付目盛りを設定します。

VM のヒント

VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook にアクセスして練習を行ってください。

場合によっては、Jupyter Notebook の読み込みが完了するまで数秒待つ必要があることがあります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題が発生した場合は、Labby に質問してください。セッション終了後にフィードバックを提供していただければ、迅速に問題を解決します。

必要なライブラリをインポートする

まず、Matplotlib、NumPy、および datetime を含む必要なライブラリをインポートする必要があります。

import datetime
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.dates import (YEARLY, DateFormatter, RRuleLocator, drange,
                              rrulewrapper)

乱数シードを設定する

この例ではランダムなデータを生成するため、再現性を保つために乱数シードを設定する必要があります。

np.random.seed(19680801)

再帰ルール (recurrence rule) を設定する

この実験では、5 回目の復活祭ごとにカスタム日付目盛りを設定します。これを行うには、rrulewrapper 関数を使用して再帰ルールを設定する必要があります。

rule = rrulewrapper(YEARLY, byeaster=1, interval=5)

目盛りの配置器 (tick locator) と書式設定器 (formatter) を設定する

前のステップで設定した再帰ルール (recurrence rule) に基づいて、RRuleLocator 関数を使用して目盛りの配置器を設定します。また、DateFormatter 関数を使用して目盛りの書式設定器を設定します。

loc = RRuleLocator(rule)
formatter = DateFormatter('%m/%d/%y')

日付を設定し、ランダムなデータを生成する

開始日と終了日、および各日付間の差を表す delta を設定する必要があります。また、この例で使用するランダムなデータも生成する必要があります。

date1 = datetime.date(1952, 1, 1)
date2 = datetime.date(2004, 4, 12)
delta = datetime.timedelta(days=100)

dates = drange(date1, date2, delta)
s = np.random.rand(len(dates))

データをプロットし、x 軸の目盛りを設定する

最後に、plot 関数を使用してデータをプロットし、前に設定した目盛りの配置器 (tick locator) と書式設定器 (formatter) 関数を使用して x 軸の目盛りを設定できます。

fig, ax = plt.subplots()
plt.plot(dates, s, 'o')
ax.xaxis.set_major_locator(loc)
ax.xaxis.set_major_formatter(formatter)
ax.xaxis.set_tick_params(rotation=30, labelsize=10)
plt.show()

まとめ

この実験では、Matplotlib で再帰ルール (recurrence rule) を使用して、プロットにカスタム日付目盛りを配置する方法を学びました。まず、rrulewrapper 関数を使用して再帰ルールを設定し、次に RRuleLocatorDateFormatter 関数を使用して目盛りの配置器 (tick locator) と書式設定器 (formatter) を設定しました。最後に、データをプロットし、目盛りの配置器と書式設定器関数を使用して x 軸の目盛りを設定しました。