На графике с осями вставки я хочу отметить эту вставку, используя mpl_toolkits.axes_grid1.inset_locator.mark_inset. Тем не менее, я сталкиваюсь с проблемами контроля zorder и отсечения результирующих линий, отмечающих вставку. Оси вставки установлены на zorder=4
, и я использую:
fig = plt.figure()
fig.set_tight_layout(False)
ax = fig.gca()
x = np.arange(4500.0, 10000.0)
ax.plot(x, 700-x/20.0+20*np.sin(x/8.0), label="Skylines")
from mpl_toolkits.axes_grid1.inset_locator import InsetPosition, mark_inset, inset_axes
inset_ax = fig.add_axes([0,0,1,1], zorder=4, frameon=True)
inset_ax.set_axes_locator(InsetPosition(ax, [0.1, 0.1, 0.4, 0.5]))
inset_ax.plot(x, 700-x/20.0+20*np.sin(x/8.0))
inset_ax.set_xlim(8800, 8850)
inset_ax.set_ylim(230, 285)
# inset_ax.set_ylim(100, 600)
mark_inset(ax, inset_ax, loc1=2, loc2=3, linewidth=0.7, fc="None", ec='k', alpha=0.4, clip_on=True, zorder=3)
ax.axhline(y=300, c='r', label="Test")
leg = ax.legend(ncol=1, loc='upper center', frameon=True, framealpha=1.0)
leg.set_zorder(5)
plt.show()
, что для двух разных случаев в пределах y приводит к


Нежелательное поведение в данном случае заключается в том, что линии вставки появляются поперек осей вставки (в то время как линия, помеченная как «Тест», располагается точно за осями вставки), и за пределами главных осей (и через условные обозначения) соответственно. Я ожидал, что аргументы zorder
и clip_on
исправят это, но, похоже, они не дают эффекта.