Pandas и matplotlib, похоже, довольно часто путают, когда сотрудничают, когда топоры имеют даты. По какой-то причине в этом случае ax.margins
не работает должным образом с осью X.
Вот обходной путь, который, кажется, делает работу, явно перемещая xlims:
xmargins = 0.05
ymargins = 0.1
ax.margins(y=ymargins)
x0, x1 = plt.xlim()
plt.xlim(x0-xmargins*(x1-x0), x1+xmargins*(x1-x0))
В качестве альтернативы, вы можете работать непосредственно с графиком matplotlib, который работает как положено, применяя поля к оси даты.
ax.plot(series.index, series)
ax.margins(y=0.1, x=0.05)
PS: Этот пост говорит о настройке use_sticky_edges
Ложь и вызов autoscale_view
после установки полей, но также это, кажется, не работает здесь.
ax.use_sticky_edges = False
ax.autoscale_view(scaley=True, scalex=True)