diff --git a/src/backends/pgfplotsx.jl b/src/backends/pgfplotsx.jl index 56396e3b..d5206e1e 100644 --- a/src/backends/pgfplotsx.jl +++ b/src/backends/pgfplotsx.jl @@ -141,6 +141,7 @@ function (pgfx_plot::PGFPlotsXPlot)(plt::Plot{PGFPlotsXBackend}) title_loc = sp[:titlelocation] bgc_inside = plot_color(sp[:background_color_inside]) bgc_inside_a = alpha(bgc_inside) + update_clims(sp) axis_opt = PGFPlotsX.Options( "point meta max" => get_clims(sp)[2], "point meta min" => get_clims(sp)[1], diff --git a/src/colorbars.jl b/src/colorbars.jl index 6340ec17..3e8ac9cb 100644 --- a/src/colorbars.jl +++ b/src/colorbars.jl @@ -8,11 +8,11 @@ process_clims(f) = f const sp_clims = Dict{Subplot, Tuple{Float64, Float64}}() const series_clims = Dict{Series, Tuple{Float64, Float64}}() -get_clims(sp::Subplot)::Tuple{Float64,Float64} = sp_clims[sp] -get_clims(series::Series)::Tuple{Float64,Float64} = series_clims[series] +get_clims(sp::Subplot)::Tuple{Float64,Float64} = haskey(sp_clims, sp) ? sp_clims[sp] : update_clims(sp) +get_clims(series::Series)::Tuple{Float64,Float64} = haskey(series_clims, series) ? series_clims[series] : update_clims(series) get_clims(sp::Subplot, series::Series)::Tuple{Float64,Float64} = - series[:colorbar_entry] ? sp_clims[sp] : series_clims[series] + series[:colorbar_entry] ? get_clims(sp) : get_clims(series) function update_clims(sp::Subplot, op = process_clims(sp[:clims]))::Tuple{Float64,Float64} zmin, zmax = Inf, -Inf @@ -48,7 +48,7 @@ function update_clims(series::Series, op = ignorenan_extrema)::Tuple{Float64,Flo end update_clims(zmin, zmax, vals::AbstractSurface, op)::Tuple{Float64, Float64} = update_clims(zmin, zmax, vals.surf, op) -update_clims(zmin, zmax, vals::AbstractArray, op)::Tuple{Float64, Float64} = update_clims(zmin, zmax, op(vals)...) +update_clims(zmin, zmax, vals::Any, op)::Tuple{Float64, Float64} = _update_clims(zmin, zmax, op(vals)...) update_clims(zmin, zmax, ::Nothing, ::Any)::Tuple{Float64, Float64} = zmin, zmax _update_clims(zmin, zmax, emin, emax) = NaNMath.min(zmin, emin), NaNMath.max(zmax, emax)