From 6a62d967519e1621ce7b07a84f7ac3d866c8d8bd Mon Sep 17 00:00:00 2001 From: Simon Christ Date: Thu, 3 Jun 2021 17:35:42 +0200 Subject: [PATCH] axis limits = :symmetric (#2600) * allow axis-lims = :symmetric * remove show * add test --- src/axes.jl | 11 +++++++++-- test/test_axes.jl | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/axes.jl b/src/axes.jl index 3d6236fb..c7a844ef 100644 --- a/src/axes.jl +++ b/src/axes.jl @@ -533,13 +533,20 @@ function axis_limits(sp, letter, should_widen = default_should_widen(sp[Symbol(l has_user_lims = (isa(lims, Tuple) || isa(lims, AVec)) && length(lims) == 2 if has_user_lims lmin, lmax = lims - if lmin != :auto && isfinite(lmin) + if lmin == :auto + elseif isfinite(lmin) amin = lmin end - if lmax != :auto && isfinite(lmax) + if lmax == :auto + elseif isfinite(lmax) amax = lmax end end + if lims == :symmetric + aval = max(abs(amin), abs(amax)) + amin = -aval + amax = aval + end if amax <= amin && isfinite(amin) amax = amin + 1.0 end diff --git a/test/test_axes.jl b/test/test_axes.jl index d981d21a..3f2170cb 100644 --- a/test/test_axes.jl +++ b/test/test_axes.jl @@ -31,3 +31,8 @@ end @test xticks(p) == yticks(p) == zticks(p) == [ticks1, ticks2] @test xticks(p[1]) == yticks(p[1]) == zticks(p[1]) == ticks1 end + +@testset "Axis limits" begin + pl = plot(1:5, xlims=:symmetric, widen = false) + @test Plots.xlims(pl) == (-5, 5) +end