【Python】datetimeオブジェクトから月と日だけを抽出して表示する方法
Pythonでdatetimeオブジェクト(日時データ)から「月」と「日」だけを抽出してグラフに表示したい場合、matplotlibが提供するDateFormatter()クラスを利用すると簡単に実現できます。この記事では、実際のコード例とともに具体的な手順をわかりやすく解説します。
実装の手順
- 図(figure)のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。
- 2次元のサイズ変更可能な表形式データを持つデータフレームdfを作成します。
- figureとサブプロットの一式を作成します。
- plot()メソッドを使ってデータフレームをプロットします。
- X軸のフォーマッターを設定し、月と日の情報を抽出・表示します。
- 最後にshow()メソッドを呼び出して、図を画面に表示します。
コード例
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt, dates
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame(dict(time=list(pd.date_range("2021-01-01 12:00:00", periods=10)), speed=np.linspace(1, 10, 10)))
fig, ax = plt.subplots()
ax.plot(df.time, df.speed)
ax.xaxis.set_major_formatter(dates.DateFormatter('M:%m\nD:%d'))
plt.show()実行結果
上記のコードを実行すると、X軸の目盛りラベルに「M:月」「D:日」の形式で、年や時刻を除いた月と日の情報だけが表示された折れ線グラフが出力されます。

ポイント解説
DateFormatterは、軸の目盛りに表示される日時の書式を自由にカスタマイズできる便利なクラスです。フォーマット文字列にはstrftimeと同じ指定子が使えるため、たとえば'%m/%d'のように指定すれば「01/01」形式の表示も可能です。時系列データを可視化する際に、不要な情報を省いて見やすいグラフを作りたいときにぜひ活用してみてください。
-
【Python】Matplotlibで目盛りラベルを残したままグラフのフレーム(枠線)を削除する方法
Matplotlibで作成したグラフから、軸の目盛りラベルはそのまま残しつつ、外枠(フレーム)だけを取り除きたいケースはよくあります。例えば、よりシンプルで洗練された見た目のチャートを作りたい場合などに有効です。 ここでは、具体的な手順とサンプルコードを紹介します。 実装手順 figureサイズの設定 — グラフのサイズを指定し、figure.autolayout を有効にしてサブプロット間および周囲の余白を自動調整します。 データの準備 — プロット用の y データポイントのリストを作成します。 グラフの描画 — plot() メソッドを使ってyデータポイントをプロットします。 スパイン(
-
PythonとMatplotlibで折れ線グラフの終端に注釈(ラベル)を付ける方法
PythonとMatplotlibを使えば、折れ線グラフの各線の終端に直接ラベル(注釈)を表示できます。これにより、凡例を目で追わなくても、どの線が何を表しているのか一目でわかる、読みやすいグラフを作成できます。 実装の手順 図のサイズを設定し、サブプロット間および周囲の余白を調整します。 データの行数を指定する変数 rows を初期化します。 Pandasのデータフレーム(長方形の表形式データ)を作成します。 データフレームの累積和(cumsum)を計算します。 plot()メソッドでデータフレームをプロットします。 各line(線オブジェクト)とname(列名)を反復処理し、線の終端に注