То, что работает нормально, - это сначала построить ту же линию на осях, на которых должно размещаться изображение, затем построить изображение, а затем снова удалить линию.Что он делает, так это то, что он говорит пандам применять свои локаторы и форматеры к этим осям;они останутся после удаления линии.
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
fig, (ax1,ax2) = plt.subplots(2,1, sharex=True)
dates = pd.date_range("2018-01-01","2019-01-01",freq = "1d")
x = pd.DataFrame(index = dates, data = np.linspace(0,1,len(dates)) )
x.plot(ax=ax1)
y = np.random.random([len(dates),100]) * x.values
x.plot(ax=ax2, legend=False)
ax2.pcolormesh(dates, np.linspace(-1,1,100), y.T)
ax2.lines[0].remove()
plt.show()

Обратите внимание, что при масштабировании или панорамировании этого решения могут быть предостережения.Считайте, что это больше похоже на взлом, и используйте его, пока он работает, но не обвиняйте никого, если это не так.