diff --git a/src/args.jl b/src/args.jl index b9c537bd..c951b37d 100644 --- a/src/args.jl +++ b/src/args.jl @@ -360,12 +360,6 @@ end # ----------------------------------------------------------------------------- -wraptuple(x::@compat(Tuple)) = x -wraptuple(x) = (x,) - -trueOrAllTrue(f::Function, x::AbstractArray) = all(f, x) -trueOrAllTrue(f::Function, x) = f(x) - function handleColors!(d::Dict, arg, csym::Symbol) try if arg == :auto @@ -417,11 +411,13 @@ end function processLineArg(d::Dict, arg) # linetype - if trueOrAllTrue(a -> get(_typeAliases, a, a) in _allTypes, arg) + # if trueOrAllTrue(a -> get(_typeAliases, a, a) in _allTypes, arg) + if allLineTypes(arg) d[:linetype] = arg # linestyle - elseif trueOrAllTrue(a -> get(_styleAliases, a, a) in _allStyles, arg) + # elseif trueOrAllTrue(a -> get(_styleAliases, a, a) in _allStyles, arg) + elseif allStyles(arg) d[:linestyle] = arg elseif typeof(arg) <: Stroke @@ -436,11 +432,13 @@ function processLineArg(d::Dict, arg) arg.alpha == nothing || (d[:fillalpha] = arg.alpha) # linealpha - elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + # elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + elseif allAlphas(arg) d[:linealpha] = arg # linewidth - elseif trueOrAllTrue(a -> typeof(a) <: Real, arg) + # elseif trueOrAllTrue(a -> typeof(a) <: Real, arg) + elseif allReals(arg) d[:linewidth] = arg # color @@ -454,13 +452,16 @@ end function processMarkerArg(d::Dict, arg) # markershape - if trueOrAllTrue(a -> get(_markerAliases, a, a) in _allMarkers, arg) - d[:markershape] = arg - elseif trueOrAllTrue(a -> isa(a, Shape), arg) + # if trueOrAllTrue(a -> get(_markerAliases, a, a) in _allMarkers, arg) + # d[:markershape] = arg + + # elseif trueOrAllTrue(a -> isa(a, Shape), arg) + if allShapes(arg) d[:markershape] = arg # stroke style - elseif trueOrAllTrue(a -> get(_styleAliases, a, a) in _allStyles, arg) + # elseif trueOrAllTrue(a -> get(_styleAliases, a, a) in _allStyles, arg) + elseif allStyles(arg) d[:markerstrokestyle] = arg elseif typeof(arg) <: Stroke @@ -475,11 +476,13 @@ function processMarkerArg(d::Dict, arg) arg.alpha == nothing || (d[:markeralpha] = arg.alpha) # linealpha - elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + # elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + elseif allAlphas(arg) d[:markeralpha] = arg # markersize - elseif trueOrAllTrue(a -> typeof(a) <: Real, arg) + # elseif trueOrAllTrue(a -> typeof(a) <: Real, arg) + elseif allReals(arg) d[:markersize] = arg # markercolor @@ -498,11 +501,13 @@ function processFillArg(d::Dict, arg) arg.alpha == nothing || (d[:fillalpha] = arg.alpha) # fillrange function - elseif trueOrAllTrue(a -> isa(a, Function), arg) + # elseif trueOrAllTrue(a -> isa(a, Function), arg) + elseif allFunctions(arg) d[:fillrange] = arg # fillalpha - elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + # elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + elseif allAlphas(arg) d[:fillalpha] = arg elseif !handleColors!(d, arg, :fillcolor) diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 364498d1..50fbf26c 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -235,7 +235,8 @@ function pyplot_figure(plotargs::Dict) end # update the specs - fig[:set_size_inches](w,h,true) + # fig[:set_size_inches](w,h, (isijulia() ? [] : [true])...) + fig[:set_size_inches](w, h, forward = true) fig[:set_facecolor](bgcolor) fig[:set_dpi](DPI) fig[:set_tight_layout](true) @@ -396,9 +397,9 @@ function _add_series(pkg::PyPlotPackage, plt::Plot; kw...) extra_kwargs[:c] = ppc end - if d[:markeralpha] != nothing - extra_kwargs[:alpha] = d[:markeralpha] - end + # if d[:markeralpha] != nothing + # extra_kwargs[:alpha] = d[:markeralpha] + # end extra_kwargs[:edgecolors] = getPyPlotColor(d[:markerstrokecolor], d[:markerstrokealpha]) extra_kwargs[:linewidths] = d[:markerstrokewidth] else diff --git a/src/backends/supported.jl b/src/backends/supported.jl index 36a2bae1..a26d7b3b 100644 --- a/src/backends/supported.jl +++ b/src/backends/supported.jl @@ -44,6 +44,7 @@ supportedArgs(::GadflyPackage) = [ :markeralpha, :markerstrokewidth, :markerstrokecolor, + :markerstrokealpha, # :markerstrokestyle, :n, :nbins, @@ -124,6 +125,7 @@ supportedArgs(::PyPlotPackage) = [ :markersize, :markerstrokewidth, :markerstrokecolor, + :markerstrokealpha, # :markerstrokestyle, :n, :nbins, diff --git a/src/components.jl b/src/components.jl index 1a24822d..a7ffa742 100644 --- a/src/components.jl +++ b/src/components.jl @@ -158,7 +158,8 @@ function stroke(args...; alpha = nothing) for arg in args T = typeof(arg) - if arg in _allStyles + # if arg in _allStyles + if allStyles(arg) style = arg elseif T <: Colorant color = arg @@ -166,7 +167,11 @@ function stroke(args...; alpha = nothing) try color = parse(Colorant, string(arg)) end - elseif typeof(arg) <: Real + # elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + elseif allAlphas(arg) + alpha = arg + # elseif typeof(arg) <: Real + elseif allReals(arg) width = arg else warn("Unused stroke arg: $arg ($(typeof(arg)))") @@ -199,7 +204,11 @@ function brush(args...; alpha = nothing) try color = parse(Colorant, string(arg)) end - elseif typeof(arg) <: Real + # elseif trueOrAllTrue(a -> typeof(a) <: Real && a > 0 && a < 1, arg) + elseif allAlphas(arg) + alpha = arg + # elseif typeof(arg) <: Real + elseif allReals(arg) size = arg else warn("Unused brush arg: $arg ($(typeof(arg)))") diff --git a/src/utils.jl b/src/utils.jl index 5bc7d6dc..69d8e115 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -222,6 +222,24 @@ Base.merge(a::AbstractVector, b::AbstractVector) = sort(unique(vcat(a,b))) # --------------------------------------------------------------- +wraptuple(x::@compat(Tuple)) = x +wraptuple(x) = (x,) + +trueOrAllTrue(f::Function, x::AbstractArray) = all(f, x) +trueOrAllTrue(f::Function, x) = f(x) + +allLineTypes(arg) = trueOrAllTrue(a -> get(_typeAliases, a, a) in _allTypes, arg) +allStyles(arg) = trueOrAllTrue(a -> get(_styleAliases, a, a) in _allStyles, arg) +allShapes(arg) = trueOrAllTrue(a -> get(_markerAliases, a, a) in _allMarkers, arg) || + trueOrAllTrue(a -> isa(a, Shape), arg) +allAlphas(arg) = trueOrAllTrue(a -> (typeof(a) <: Real && a > 0 && a < 1) || + (typeof(a) <: AbstractFloat && (a == zero(typeof(a)) || a == one(typeof(a)))), arg) +allReals(arg) = trueOrAllTrue(a -> typeof(a) <: Real, arg) +allFunctions(arg) = trueOrAllTrue(a -> isa(a, Function), arg) + +# --------------------------------------------------------------- + + """ Allows temporary setting of backend and defaults for Plots. Settings apply only for the `do` block. Example: ```