Fix generic aliases (#3824)

This commit is contained in:
BerndR 2021-09-17 21:43:26 +02:00 committed by GitHub
parent e2539a3d19
commit 4f8a265c6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 3 deletions

View File

@ -24,8 +24,9 @@ function add_aliases(sym::Symbol, aliases::Symbol...)
return nothing return nothing
end end
function add_axes_aliases(sym::Symbol, aliases::Symbol...) function add_axes_aliases(sym::Symbol, aliases::Symbol...; generic::Bool = true)
sym in keys(_axis_defaults) || throw(ArgumentError("Invalid `$sym`")) sym in keys(_axis_defaults) || throw(ArgumentError("Invalid `$sym`"))
generic && add_aliases(sym, aliases...)
for letter in (:x, :y, :z) for letter in (:x, :y, :z)
add_aliases(Symbol(letter, sym), (Symbol(letter, a) for a in aliases)...) add_aliases(Symbol(letter, sym), (Symbol(letter, a) for a in aliases)...)
end end
@ -841,7 +842,7 @@ add_aliases(:markerstrokealpha, :msa, :msalpha, :msα, :markerstrokeopacity, :ms
add_aliases(:fillalpha, :fa, :falpha, :fα, :fillopacity, :fopacity) add_aliases(:fillalpha, :fa, :falpha, :fα, :fillopacity, :fopacity)
# axes attributes # axes attributes
add_axes_aliases(:guide, :label, :lab, :l) add_axes_aliases(:guide, :label, :lab, :l; generic = false)
add_axes_aliases(:lims, :lim, :limit, :limits, :range) add_axes_aliases(:lims, :lim, :limit, :limits, :range)
add_axes_aliases(:ticks, :tick) add_axes_aliases(:ticks, :tick)
add_axes_aliases(:rotation, :rot, :r) add_axes_aliases(:rotation, :rot, :r)

View File

@ -64,7 +64,7 @@ end
@test twpl[:bottom_margin] == 2Plots.cm @test twpl[:bottom_margin] == 2Plots.cm
end end
@testset "aliases" begin @testset "axis-aliases" begin
p = plot(1:2, xl = "x label") p = plot(1:2, xl = "x label")
@test p[1][:xaxis][:guide] === "x label" @test p[1][:xaxis][:guide] === "x label"
p = plot(1:2, xrange = (0, 3)) p = plot(1:2, xrange = (0, 3))
@ -88,3 +88,33 @@ end
p = plot(1:2, xtickor = :out) p = plot(1:2, xtickor = :out)
@test p[1][:xaxis][:tick_direction] === :out @test p[1][:xaxis][:tick_direction] === :out
end end
@testset "aliases" begin
compare(p::Plots.Plot, s::Symbol, val, op) =
op(p[1][:xaxis][s], val) && op(p[1][:yaxis][s], val) && op(p[1][:zaxis][s], val)
p = plot(1:2, guide = "all labels")
@test compare(p, :guide, "all labels", ===)
p = plot(1:2, label = "test")
@test compare(p, :guide, "", ===)
p = plot(1:2, lim = (0, 3))
@test xlims(p) === ylims(p) === zlims(p) === (0,3)
p = plot(1:2, tick = [1.25, 1.5, 1.75])
@test compare(p,:ticks,[1.25, 1.5, 1.75], ==)
p = plot(1:2, labelfontsize = 4)
@test compare(p,:guidefontsize,4, ==)
p = plot(1:2, gα = .07)
@test compare(p,:gridalpha,.07, )
p = plot(1:2, gridls = :dashdot)
@test compare(p,:gridstyle,:dashdot, ===)
p = plot(1:2, gridcolor = :red)
@test compare(p,:foreground_color_grid,RGBA{Float64}(1.,0.,0.,1.), ===)
p = plot(1:2, minorgridcolor = :red)
@test compare(p,:foreground_color_minor_grid,RGBA{Float64}(1.,0.,0.,1.), ===)
p = plot(1:2, grid_lw = .01)
@test compare(p,:gridlinewidth,.01, )
p = plot(1:2, minorgrid_lw = .01)
@test compare(p,:minorgridlinewidth,.01, )
p = plot(1:2, tickor = :out)
@test compare(p,:tick_direction,:out, ===)
end