From d4c72e6f78f7a1df843419e59c1200bfe78c841f Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Wed, 30 Sep 2015 10:36:00 -0400 Subject: [PATCH] gadfly ribbon --- src/args.jl | 4 ++-- src/backends/gadfly.jl | 31 +++++++++++++++++++++---------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/args.jl b/src/args.jl index b982ce5d..e8cca6d2 100644 --- a/src/args.jl +++ b/src/args.jl @@ -202,7 +202,7 @@ const _keyAliases = Dict( :fill => :fillto, :area => :fillto, :g => :group, - :r => :ribbon, + :rib => :ribbon, :ann => :annotation, :anns => :annotation, :annotate => :annotation, @@ -351,7 +351,7 @@ function getPlotArgs(pkg::PlottingPackage, kw, idx::Int) d[k] = _plotDefaults[k] end end - + for k in (:xscale, :yscale) if haskey(_scaleAliases, d[k]) d[k] = _scaleAliases[d[k]] diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index d2e3837b..e180bce3 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -33,7 +33,7 @@ supportedArgs(::GadflyPackage) = [ :nr, # :pos, :reg, - # :ribbon, + :ribbon, :show, :size, :title, @@ -253,17 +253,28 @@ function addGadflySeries!(gplt, d::Dict, initargs::Dict) colorgroup = [] end - # fillto - if d[:fillto] == nothing - yminmax = [] - else - fillto = makevec(d[:fillto]) + # fillto and ribbon + yminmax = [] + fillto, ribbon = d[:fillto], d[:ribbon] + + if fillto != nothing + if ribbon != nothing + warn("Ignoring ribbon arg since fillto is set!") + end + fillto = makevec(fillto) n = length(fillto) - yminmax = [ - (:ymin, Float64[min(y, fillto[mod1(i,n)]) for (i,y) in enumerate(d[:y])]), - (:ymax, Float64[max(y, fillto[mod1(i,n)]) for (i,y) in enumerate(d[:y])]) - ] + push!(yminmax, (:ymin, Float64[min(y, fillto[mod1(i,n)]) for (i,y) in enumerate(d[:y])])) + push!(yminmax, (:ymax, Float64[max(y, fillto[mod1(i,n)]) for (i,y) in enumerate(d[:y])])) push!(gfargs, Gadfly.Geom.ribbon) + + elseif ribbon != nothing + ribbon = makevec(ribbon) + n = length(ribbon) + @show ribbon + push!(yminmax, (:ymin, Float64[y - ribbon[mod1(i,n)] for (i,y) in enumerate(d[:y])])) + push!(yminmax, (:ymax, Float64[y + ribbon[mod1(i,n)] for (i,y) in enumerate(d[:y])])) + push!(gfargs, Gadfly.Geom.ribbon) + end # handle markers