Skip to content

Instantly share code, notes, and snippets.

@jkrumbiegel
Created June 8, 2025 19:25
Show Gist options
  • Save jkrumbiegel/e69f1f76be20d7e2dacb938d8677fe26 to your computer and use it in GitHub Desktop.
Save jkrumbiegel/e69f1f76be20d7e2dacb938d8677fe26 to your computer and use it in GitHub Desktop.
makie_align_axes_around_value.jl
f = Figure()
ax1 = Axis(f[1, 1])
scatter!(randn(100) .- 1)
ax2 = Axis(f[1, 2])
scatter!(randn(100) .* 2)
on(ax1.finallimits) do lims
aligned = 0
(xmin, ymin), (xmax, ymax) = extrema(lims)
dy1, dy2 = (ymin, ymax) .- aligned
factor1 = dy1 / dy2
reset_limits!(ax2)
(xmin2, ymin2), (xmax2, ymax2) = extrema(ax2.finallimits[])
dy1_2, dy2_2 = (ymin2, ymax2) .- aligned
factor2 = dy1_2 / dy2_2
ymin_new = (factor1 / factor2) < 1 ? aligned + dy1_2 : aligned + dy1_2 * (factor1 / factor2)
ymax_new = (factor2 / factor1) < 1 ? aligned + dy2_2 : aligned + dy2_2 * (factor2 / factor1)
limits!(ax2, BBox(xmin2, xmax2, ymin_new, ymax_new))
end
f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment