ColorGradient fixes; allow default keywords in backend calls
This commit is contained in:
parent
d077307721
commit
d5797054fb
@ -12,7 +12,9 @@ getPyPlotColor(c, α=nothing) = getPyPlotColor(convertColor(c, α))
|
|||||||
function getPyPlotColorMap(c::ColorGradient, α=nothing)
|
function getPyPlotColorMap(c::ColorGradient, α=nothing)
|
||||||
# c = ColorGradient(c.colors, c.values, alpha=α)
|
# c = ColorGradient(c.colors, c.values, alpha=α)
|
||||||
# pycolors.pymember("LinearSegmentedColormap")[:from_list]("tmp", map(getPyPlotColor, getColorVector(c)))
|
# pycolors.pymember("LinearSegmentedColormap")[:from_list]("tmp", map(getPyPlotColor, getColorVector(c)))
|
||||||
pyvals = [(c.values[i], getPyPlotColor(c.colors[i], α)) for i in 1:length(c.colors)]
|
# pyvals = [(c.values[i], getPyPlotColor(c.colors[i], α)) for i in 1:length(c.colors)]
|
||||||
|
pyvals = [(v, getPyPlotColor(getColorZ(c, v), α)) for v in c.values]
|
||||||
|
# @show c α pyvals
|
||||||
pycolors.pymember("LinearSegmentedColormap")[:from_list]("tmp", pyvals)
|
pycolors.pymember("LinearSegmentedColormap")[:from_list]("tmp", pyvals)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -75,28 +75,34 @@ immutable ColorGradient <: ColorScheme
|
|||||||
colors::Vector{Colorant}
|
colors::Vector{Colorant}
|
||||||
values::Vector{Float64}
|
values::Vector{Float64}
|
||||||
|
|
||||||
function ColorGradient{T<:Colorant,S<:Real}(cs::AVec{T}, vals::AVec{S} = 0:1; alpha = nothing)
|
function ColorGradient{T<:Colorant,S<:Real}(cs::AVec{T}, vals::AVec{S} = linspace(0, 1, length(cs)); alpha = nothing)
|
||||||
if length(cs) == length(vals)
|
if length(cs) == length(vals)
|
||||||
return new(convertColor(cs,alpha), collect(vals))
|
return new(convertColor(cs,alpha), collect(vals))
|
||||||
end
|
end
|
||||||
|
|
||||||
# otherwise interpolate evenly between the minval and maxval
|
# # otherwise interpolate evenly between the minval and maxval
|
||||||
minval, maxval = minimum(vals), maximum(vals)
|
# minval, maxval = minimum(vals), maximum(vals)
|
||||||
vs = Float64[interpolate(minval, maxval, w) for w in linspace(0, 1, length(cs))]
|
# vs = Float64[interpolate(minval, maxval, w) for w in linspace(0, 1, length(cs))]
|
||||||
new(convertColor(cs,alpha), vs)
|
# new(convertColor(cs,alpha), vs)
|
||||||
|
|
||||||
|
# interpolate the colors for each value
|
||||||
|
grad = ColorGradient(cs)
|
||||||
|
cs = [getColorZ(grad, z) for z in linspace(0, 1, length(vals))]
|
||||||
|
new(convertColor(cs, alpha), collect(vals)) #collect(linspace(0, 1, length(cs))))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# create a gradient from a symbol (blues, reds, etc) and vector of boundary values
|
# create a gradient from a symbol (blues, reds, etc) and vector of boundary values
|
||||||
function ColorGradient{T<:Real}(s::Symbol, vals::AVec{T} = 0:1; kw...)
|
function ColorGradient{T<:Real}(s::Symbol, vals::AVec{T} = 0:0; kw...)
|
||||||
haskey(_gradients, s) || error("Invalid gradient symbol. Choose from: ", sort(collect(keys(_gradients))))
|
haskey(_gradients, s) || error("Invalid gradient symbol. Choose from: ", sort(collect(keys(_gradients))))
|
||||||
|
|
||||||
# if we passed in the right number of values, create the gradient directly
|
|
||||||
cs = _gradients[s]
|
cs = _gradients[s]
|
||||||
|
if vals == 0:0
|
||||||
|
vals = linspace(0, 1, length(cs))
|
||||||
|
end
|
||||||
ColorGradient(cs, vals; kw...)
|
ColorGradient(cs, vals; kw...)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ColorGradient{T<:Real}(cs::AVec{Symbol}, vals::AVec{T} = 0:1; kw...)
|
function ColorGradient{T<:Real}(cs::AVec{Symbol}, vals::AVec{T} = linspace(0, 1, length(cs)); kw...)
|
||||||
ColorGradient(map(convertColor, cs), vals; kw...)
|
ColorGradient(map(convertColor, cs), vals; kw...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -26,16 +26,16 @@ export
|
|||||||
glvisualize
|
glvisualize
|
||||||
# winston
|
# winston
|
||||||
|
|
||||||
gadfly() = backend(:gadfly)
|
gadfly(; kw...) = (default(; kw...); backend(:gadfly))
|
||||||
immerse() = backend(:immerse)
|
immerse(; kw...) = (default(; kw...); backend(:immerse))
|
||||||
pyplot() = backend(:pyplot)
|
pyplot(; kw...) = (default(; kw...); backend(:pyplot))
|
||||||
qwt() = backend(:qwt)
|
qwt(; kw...) = (default(; kw...); backend(:qwt))
|
||||||
unicodeplots() = backend(:unicodeplots)
|
unicodeplots(; kw...) = (default(; kw...); backend(:unicodeplots))
|
||||||
bokeh() = backend(:bokeh)
|
bokeh(; kw...) = (default(; kw...); backend(:bokeh))
|
||||||
plotly() = backend(:plotly)
|
plotly(; kw...) = (default(; kw...); backend(:plotly))
|
||||||
gr() = backend(:gr)
|
gr(; kw...) = (default(; kw...); backend(:gr))
|
||||||
glvisualize() = backend(:glvisualize)
|
glvisualize(; kw...) = (default(; kw...); backend(:glvisualize))
|
||||||
# winston() = backend(:winston)
|
# winston(; kw...) = (default(; kw...); backend(:winston))
|
||||||
|
|
||||||
backend_name(::GadflyPackage) = :gadfly
|
backend_name(::GadflyPackage) = :gadfly
|
||||||
backend_name(::ImmersePackage) = :immerse
|
backend_name(::ImmersePackage) = :immerse
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user