How to properly set aspect for Axis defined in multiple fig positions in Makie

You nest only the axes whose rows don’t need to be aspect constrained, so that the big square one gets its own row:

plot_figsize_width_pt = 500
λ_color = :magenta
ϵ_color = :teal
fig_simple = Figure(size=(plot_figsize_width_pt, 0.5*plot_figsize_width_pt), figure_padding=1)

Label(fig_simple[1, 1:3], "Liouvillian", tellwidth=false, tellheight=true)
Label(fig_simple[1, 4:6], "Propagator", tellwidth=false, tellheight=true)

box_λ_simple = Box(fig_simple[2:4, 1:3], cornerradius = 5, color = (λ_color, 0.25), strokecolor = :transparent)
box_ϵ_simple = Box(fig_simple[2:4, 4:7], cornerradius = 5, color = (ϵ_color, 0.25), strokecolor = :transparent)

Makie.translate!(box_λ_simple.blockscene, 0, 0, -100)
Makie.translate!(box_ϵ_simple.blockscene, 0, 0, -100)

ax_λ_simple = Axis(fig_simple[3, 2][1, 1])
ax_ϵ_simple = Axis(fig_simple[3, 5][1, 1])
ax_λ_gap_simple = Axis(fig_simple[3, 2][2, 1])
ax_ϵ_gap_simple = Axis(fig_simple[3, 5][2, 1])
ax_ϵ_symmetry_simple = Axis(fig_simple[3, 6])

colsize!(fig_simple.layout, 6, Aspect(3, 1))
rowsize!(fig_simple.layout, 2, 0)
rowsize!(fig_simple.layout, 4, 0)

colsize!(fig_simple.layout, 1, 10)
colsize!(fig_simple.layout, 3, 10)
colsize!(fig_simple.layout, 4, 10)
colsize!(fig_simple.layout, 7, 10)

rowgap!(fig_simple.layout, 8)
rowgap!(fig_simple.layout, 1, 2)
rowgap!(fig_simple.layout, 3, 10)
colgap!(fig_simple.layout, 8)
colgap!(fig_simple.layout, 3, 10)
colgap!(fig_simple.layout, 5, 10)

fig_simple

1 Like