diff --git a/src/backends/plotly.jl b/src/backends/plotly.jl index f06767b5..ffffc315 100644 --- a/src/backends/plotly.jl +++ b/src/backends/plotly.jl @@ -350,11 +350,9 @@ function plotly_layout_json(plt::Plot) end -function plotly_colorscale(grad::ColorGradient, α) - [[grad.values[i], rgba_string(plot_color(grad.colors[i], α))] for i in eachindex(grad.colors)] -end -plotly_colorscale(c::Colorant,α) = plotly_colorscale(_as_gradient(c),α) -function plotly_colorscale(c::AbstractVector{<:RGBA}, α) +plotly_colorscale(grad::PlotUtils.AbstractColorList, α = nothing) = plotly_colorscale(PlotUtils.color_list(grad), α) +plotly_colorscale(c::Colorant,α) = plotly_colorscale(_as_gradient(c), α = nothing) +function plotly_colorscale(c::AbstractVector{<:Colorant}, α = nothing) if length(c) == 1 return [[0.0, rgba_string(plot_color(c[1], α))], [1.0, rgba_string(plot_color(c[1], α))]] else diff --git a/src/utils.jl b/src/utils.jl index 59386f86..16f74f30 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -1,8 +1,8 @@ function replace_image_with_heatmap(z::Array{T}) where T<:Colorant n, m = size(z) - colors = ColorGradient(vec(z)) - newz = reshape(range(0, stop=1, length=n*m), n, m) + colors = palette(vec(z)) + newz = reshape(1:n*m, n, m) newz, colors end @@ -548,7 +548,15 @@ get_gradient(c) = cgrad() get_gradient(cg::ColorGradient) = cg get_gradient(cp::ColorPalette) = cp -nan_get(cs, x, range) = isfinite(x) ? plot_color(get(cs, x, range)) : invisible() +function nan_get(cs, x, range) + if !isfinite(x) + return invisible() + elseif range isa Tuple && range[1] == range[2] + return plot_color(cs[1]) + else + plot_color(get(cs, x, range)) + end +end function nan_get(cs, v::AbstractVector, range) colors = fill(invisible(), length(v)) for (i, x) in enumerate(v)