consider fillrange in step recipes

This commit is contained in:
Daniel Schwabeneder 2018-02-18 22:49:27 +01:00
parent a4636fd88d
commit 9e2264c841
2 changed files with 28 additions and 3 deletions

View File

@ -140,11 +140,32 @@ function make_steps(x, y, st)
newx, newy newx, newy
end end
make_steps(x, st) = x
function make_steps(x::AbstractArray, st)
n = length(x)
n == 0 && return zeros(0)
newx = zeros(2n - 1)
for i in 1:n
idx = 2i - 1
newx[idx] = x[i]
if i > 1
newx[idx - 1] = x[st == :pre ? i : i - 1]
end
end
return newx
end
make_steps(t::Tuple, st) = Tuple(make_steps(ti, st) for ti in t)
# create a path from steps # create a path from steps
@recipe function f(::Type{Val{:steppre}}, x, y, z) @recipe function f(::Type{Val{:steppre}}, x, y, z)
plotattributes[:x], plotattributes[:y] = make_steps(x, y, :steppre) plotattributes[:x] = make_steps(x, :post)
plotattributes[:y] = make_steps(y, :pre)
seriestype := :path seriestype := :path
# handle fillrange
plotattributes[:fillrange] = make_steps(plotattributes[:fillrange], :pre)
# create a secondary series for the markers # create a secondary series for the markers
if plotattributes[:markershape] != :none if plotattributes[:markershape] != :none
@series begin @series begin
@ -163,9 +184,13 @@ end
# create a path from steps # create a path from steps
@recipe function f(::Type{Val{:steppost}}, x, y, z) @recipe function f(::Type{Val{:steppost}}, x, y, z)
plotattributes[:x], plotattributes[:y] = make_steps(x, y, :steppost) plotattributes[:x] = make_steps(x, :pre)
plotattributes[:y] = make_steps(y, :post)
seriestype := :path seriestype := :path
# handle fillrange
plotattributes[:fillrange] = make_steps(plotattributes[:fillrange], :post)
# create a secondary series for the markers # create a secondary series for the markers
if plotattributes[:markershape] != :none if plotattributes[:markershape] != :none
@series begin @series begin

View File

@ -1051,7 +1051,7 @@ guidefont(ax::Axis) = font(
# --------------------------------------------------------------- # ---------------------------------------------------------------
# converts unicode scientific notation unsupported by pgfplots and gr # converts unicode scientific notation unsupported by pgfplots and gr
# into a format that works # into a format that works
function convert_sci_unicode(label::AbstractString) function convert_sci_unicode(label::AbstractString)
unicode_dict = Dict( unicode_dict = Dict(