欠損区間をハイライト

最終更新: 1 分で読めます このページを編集

欠損や測定停止区間を色付けすると、分析前にデータ品質を共有できます。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rng = np.random.default_rng(26)
dates = pd.date_range("2021-01-01", periods=200, freq="D")
series = pd.Series(100 + np.cumsum(rng.normal(0, 1.2, size=len(dates))), index=dates)

missing_ranges = [
    (pd.Timestamp("2021-03-15"), pd.Timestamp("2021-03-28")),
    (pd.Timestamp("2021-05-20"), pd.Timestamp("2021-06-05")),
]

for start, end in missing_ranges:
    series.loc[start:end] = np.nan

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(series.index, series, color="#2563eb", linewidth=1.2)

for start, end in missing_ranges:
    ax.axvspan(start, end, color="#f87171", alpha=0.3)
    ax.text(start + (end - start) / 2, series.min(), "欠損", color="#b91c1c", ha="center", va="bottom")

ax.set_title("欠損区間の可視化")
ax.set_xlabel("日付")
ax.set_ylabel("値")
ax.grid(alpha=0.3)

fig.tight_layout()
fig.savefig("static/images/timeseries/missing_highlight.svg")

plot

読み方のポイント #

  • 欠損区間を共有すると、補完・削除・外部データで埋めるなど次のアクションが取りやすい。
  • 欠損の程度を可視化しておくと、モデルの信頼性や予測への影響を議論しやすい。
  • 欠損が連続して長い場合は、モデルを再学習する前にデータ収集プロセスの改善が必要かもしれない。