Merge pull request #1400 from daschw/step-ribbon

consider fillrange in step recipes (fix #1393)
This commit is contained in:
Daniel Schwabeneder 2018-02-20 09:26:07 +01:00 committed by GitHub
commit a118d73871
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 12 deletions

View File

@ -124,27 +124,32 @@ end
# ---------------------------------------------------------------------------
# steps
function make_steps(x, y, st)
make_steps(x, st) = x
function make_steps(x::AbstractArray, st)
n = length(x)
n == 0 && return zeros(0),zeros(0)
newx, newy = zeros(2n-1), zeros(2n-1)
for i=1:n
idx = 2i-1
n == 0 && return zeros(0)
newx = zeros(2n - 1)
for i in 1:n
idx = 2i - 1
newx[idx] = x[i]
newy[idx] = y[i]
if i > 1
newx[idx-1] = x[st == :steppre ? i-1 : i]
newy[idx-1] = y[st == :steppre ? i : i-1]
newx[idx - 1] = x[st == :pre ? i : i - 1]
end
end
newx, newy
return newx
end
make_steps(t::Tuple, st) = Tuple(make_steps(ti, st) for ti in t)
# create a path from steps
@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
# handle fillrange
plotattributes[:fillrange] = make_steps(plotattributes[:fillrange], :pre)
# create a secondary series for the markers
if plotattributes[:markershape] != :none
@series begin
@ -163,9 +168,13 @@ end
# create a path from steps
@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
# handle fillrange
plotattributes[:fillrange] = make_steps(plotattributes[:fillrange], :post)
# create a secondary series for the markers
if plotattributes[:markershape] != :none
@series begin

View File

@ -1051,7 +1051,7 @@ guidefont(ax::Axis) = font(
# ---------------------------------------------------------------
# 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)
unicode_dict = Dict(