Skip to content

Commit

Permalink
Merge pull request #692 from mkborregaard/showlibrary
Browse files Browse the repository at this point in the history
Update Plots to use color libraries
  • Loading branch information
mkborregaard authored Mar 2, 2017
2 parents 8b90eb3 + 7e41a2f commit 032f5a5
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 2 deletions.
44 changes: 44 additions & 0 deletions src/recipes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -805,3 +805,47 @@ abline!(args...; kw...) = abline!(current(), args...; kw...)
seriestype --> :scatter
real(cp.args[1]), imag(cp.args[1])
end


# --------------------------------------------------
# Color Gradients

@userplot ShowLibrary
@recipe function f(cl::ShowLibrary)
if !(length(cl.args) == 1 && isa(cl.args[1], Symbol))
error("showlibrary takes the name of a color library as a Symbol")
end

library = PlotUtils.color_libraries[cl.args[1]]
z = sqrt.((1:15)*(1:20)')

seriestype := :heatmap
ticks := nothing
legend := false

layout --> length(library.lib)

i = 0
for grad in sort(collect(keys(library.lib)))
@series begin
seriescolor := cgrad(grad, cl.args[1])
title := string(grad)
subplot := i += 1
z
end
end
end

@userplot ShowGradient
@recipe function f(grad::ShowGradient)
if !(length(grad.args) == 1 && isa(grad.args[1], Symbol))
error("showgradient takes the name of a color gradient as a Symbol")
end
z = sqrt.((1:15)*(1:20)')
seriestype := :heatmap
ticks := nothing
legend := false
seriescolor := grad.args[1]
title := string(grad.args[1])
z
end
6 changes: 4 additions & 2 deletions src/themes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
function theme(s::Symbol; kw...)
# reset?
if s == :none || s == :default
PlotUtils._default_gradient[] = :inferno
PlotUtils.clibrary(:Plots)
PlotUtils.default_cgrad(default = :sequential, sequential = :inferno)
default(;
bg = :white,
bglegend = :match,
Expand All @@ -23,7 +24,8 @@ function theme(s::Symbol; kw...)
# update the default gradient and other defaults
thm = PlotThemes._themes[s]
if thm.gradient != nothing
PlotUtils._default_gradient[] = PlotThemes.gradient_name(s)
PlotUtils.clibrary(:misc)
PlotUtils.default_cgrad(default = :sequential, sequential = PlotThemes.gradient_name(s))
end
default(;
bg = thm.bg_secondary,
Expand Down

0 comments on commit 032f5a5

Please sign in to comment.