remove fillrange and ribbon handling from RecipesPipeline

This commit is contained in:
Simon Christ 2022-01-12 13:50:18 +01:00
parent 754038aaed
commit aff50f39de
3 changed files with 26 additions and 3 deletions

View File

@ -69,7 +69,7 @@ function _preprocess_userrecipe(kw::AKW)
_add_markershape(kw)
# map marker_z if it's a Function
if isa(get(kw, :marker_z, nothing), Function)
if isa(get(kw, :marker_z, default(:marker_z)), Function)
# TODO: should this take y and/or z as arguments?
kw[:marker_z] =
isa(kw[:z], Nothing) ? map(kw[:marker_z], kw[:x], kw[:y]) :
@ -77,15 +77,24 @@ function _preprocess_userrecipe(kw::AKW)
end
# map line_z if it's a Function
if isa(get(kw, :line_z, nothing), Function)
if isa(get(kw, :line_z, default(:line_z)), Function)
kw[:line_z] =
isa(kw[:z], Nothing) ? map(kw[:line_z], kw[:x], kw[:y]) :
map(kw[:line_z], kw[:x], kw[:y], kw[:z])
end
rib = get(kw, :ribbon, default(:ribbon))
fr = get(kw, :fillrange, default(:fillrange))
# map ribbon if it's a Function
if rib isa Function
kw[:ribbon] = map(rib, kw[:x])
end
# convert a ribbon into a fillrange
if get(kw, :ribbon, nothing) !== nothing
if rib !== nothing
make_fillrange_from_ribbon(kw)
# map fillrange if it's a Function
elseif fr !== nothing && fr isa Function
kw[:fillrange] = map(fr, kw[:x])
end
return
end
@ -154,6 +163,7 @@ function RecipesPipeline.process_sliced_series_attributes!(plt::Plots.Plot, kw_l
kw_list[ind - 1] = tmp
end
end
return nothing
end
@ -409,3 +419,4 @@ function _add_the_series(plt, sp, plotattributes)
_series_added(plt, series)
_update_subplot_colorbars(sp)
end

View File

@ -17,6 +17,7 @@ Plots.__init__()
@test Plots._series_defaults[:fillrange] == 0
pl = plot(1:5)
@test pl[1][1][:fillrange] == 0
default()
end
@testset "Legend defaults" begin

View File

@ -17,3 +17,14 @@ end
@test all(RecipesPipeline.get_axis_limits(p1, :x) .== x)
@test all(RecipesPipeline.get_axis_limits(p2, :x) .== x)
end
@testset "Slicing" begin
@test plot(1:5, fillrange = 0)[1][1][:fillrange] == 0
data4 = rand(4,4)
for i in axes(data4, 1)
@test plot(data4, fillrange = 0)[1][i][:fillrange] == 0
@test plot(data4, fillrange = [1, 2])[1][i][:fillrange] == [1.0, 2.0]
@test plot(data4, fillrange = [1 2])[1][i][:fillrange] == (iseven(i) ? 2 : 1)
end
end