Ah I see the axis decorations were not translated, try like this:
function inset_axis!(fig, ax; z = 300, extent = (0.25, 0.75, 0.25, 0.75), axis_kwargs...)
bbox = lift(ax.scene.px_area) do pxa
_l, _b = minimum(pxa)
_r, _t = maximum(pxa)
l = _l + extent[1] * (_r - _l)
r = _l + extent[2] * (_r - _l)
b = _b + extent[3] * (_t - _b)
t = _b + extent[4] * (_t - _b)
BBox(l, r, b, t)
end
inset_ax = Axis(fig, bbox=bbox; axis_kwargs...)
translate_forward!(x::Makie.Transformable, z) = translate!(Accum, x, 0, 0, z)
translate_forward!(ax::MakieLayout.LineAxis, z) = foreach(x -> translate_forward!(x, z), values(ax.elements))
translate_forward!(_) = nothing
foreach(x -> translate_forward!(x, z), values(inset_ax.elements))
translate!(Accum, inset_ax.scene, 0, 0, z)
return inset_ax
end
f, ax, hm = heatmap(randn(10, 10), colormap = :Blues)
ax2 = inset_axis!(f, ax)
lines!(ax2, cumsum(randn(100)))
ax3 = inset_axis!(f, ax2, extent = (0, 0.5, 0, 1), z = 500, alignmode = Outside(10))
lines!(ax3, cumsum(randn(100)), color = Cycled(2))
f
