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

rng = np.random.RandomState(0)
data = (rng.normal(size=(12, 18)).cumsum(axis=1).cumsum(axis=0))
df = pd.DataFrame(
   (data - data.min()) / (data.max() - data.min()),
   index=pd.date_range("2026-01-01", periods=12, freq="MS"),
   columns=np.arange(18),
)

fig, ax = plt.subplots()
image = ax.imshow(df.to_numpy(), cmap="viridis", aspect="auto")
fig.colorbar(image, ax=ax)
ax.set_title("Matplotlib treats metadata as plain arrays")
ax.set_xlabel("generic x")
ax.set_ylabel("generic y")