diff --git a/REQUIRE b/REQUIRE index f0aaec83..4b52b996 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,4 +1,4 @@ -julia 0.5- +julia 0.5 RecipesBase PlotUtils diff --git a/src/Plots.jl b/src/Plots.jl index 9e2ca468..eebe49b8 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -3,14 +3,12 @@ __precompile__() module Plots -# using Compat using Reexport -# @reexport using Colors -# using Requires using FixedSizeArrays @reexport using RecipesBase using Base.Meta @reexport using PlotUtils +@reexport using PlotThemes import Showoff export @@ -29,8 +27,7 @@ export KW, wrap, - set_theme, - add_theme, + theme, plot, plot!, @@ -77,7 +74,6 @@ export backend_object, add_backend, aliases, - # dataframes, Shape, text, @@ -97,8 +93,6 @@ export @animate, @gif, - # spy, - test_examples, iter_segments, coords, @@ -247,11 +241,4 @@ end # --------------------------------------------------------- -# if VERSION >= v"0.4.0-dev+5512" -# include("precompile.jl") -# _precompile_() -# end - -# --------------------------------------------------------- - end # module diff --git a/src/themes.jl b/src/themes.jl index 0de2bbdf..16845ffb 100644 --- a/src/themes.jl +++ b/src/themes.jl @@ -1,65 +1,78 @@ -const _invisible = RGBA(0,0,0,0) +# const _invisible = RGBA(0,0,0,0) +# +# const _themes = KW( +# :default => KW( +# :bg => :white, +# :bglegend => :match, +# :bginside => :match, +# :bgoutside => :match, +# :fg => :auto, +# :fglegend => :match, +# :fggrid => :match, +# :fgaxis => :match, +# :fgtext => :match, +# :fgborder => :match, +# :fgguide => :match, +# ) +# ) -const _themes = KW( - :default => KW( - :bg => :white, - :bglegend => :match, - :bginside => :match, - :bgoutside => :match, - :fg => :auto, - :fglegend => :match, - :fggrid => :match, - :fgaxis => :match, - :fgtext => :match, - :fgborder => :match, - :fgguide => :match, +# function add_theme(sym::Symbol, theme::KW) +# _themes[sym] = theme +# end +# +# # add a new theme, using an existing theme as the base +# function add_theme(sym::Symbol; +# base = :default, # start with this theme +# bg = _themes[base][:bg], +# bglegend = _themes[base][:bglegend], +# bginside = _themes[base][:bginside], +# bgoutside = _themes[base][:bgoutside], +# fg = _themes[base][:fg], +# fglegend = _themes[base][:fglegend], +# fggrid = _themes[base][:fggrid], +# fgaxis = _themes[base][:fgaxis], +# fgtext = _themes[base][:fgtext], +# fgborder = _themes[base][:fgborder], +# fgguide = _themes[base][:fgguide], +# kw...) +# _themes[sym] = merge(KW( +# :bg => bg, +# :bglegend => bglegend, +# :bginside => bginside, +# :bgoutside => bgoutside, +# :fg => fg, +# :fglegend => fglegend, +# :fggrid => fggrid, +# :fgaxis => fgaxis, +# :fgtext => fgtext, +# :fgborder => fgborder, +# :fgguide => fgguide, +# ), KW(kw)) +# end +# +# add_theme(:ggplot2, +# bglegend = :lightgray, +# bginside = :lightgray, +# fg = :black, +# fggrid = :white, +# fgborder = _invisible, +# fgaxis = _invisible +# ) + +function theme(s::Symbol; kw...) + thm = PlotThemes._themes[s] + PlotUtils._default_gradient[] = s + default(; + bg = thm.bg_secondary, + bginside = thm.bg_primary, + fg = thm.lines, + fgtext = thm.text, + fgguide = thm.text, + fglegend = thm.text, + palette = thm.palette, + kw... ) -) - -function add_theme(sym::Symbol, theme::KW) - _themes[sym] = theme end -# add a new theme, using an existing theme as the base -function add_theme(sym::Symbol; - base = :default, # start with this theme - bg = _themes[base][:bg], - bglegend = _themes[base][:bglegend], - bginside = _themes[base][:bginside], - bgoutside = _themes[base][:bgoutside], - fg = _themes[base][:fg], - fglegend = _themes[base][:fglegend], - fggrid = _themes[base][:fggrid], - fgaxis = _themes[base][:fgaxis], - fgtext = _themes[base][:fgtext], - fgborder = _themes[base][:fgborder], - fgguide = _themes[base][:fgguide], - kw...) - _themes[sym] = merge(KW( - :bg => bg, - :bglegend => bglegend, - :bginside => bginside, - :bgoutside => bgoutside, - :fg => fg, - :fglegend => fglegend, - :fggrid => fggrid, - :fgaxis => fgaxis, - :fgtext => fgtext, - :fgborder => fgborder, - :fgguide => fgguide, - ), KW(kw)) -end - -add_theme(:ggplot2, - bglegend = :lightgray, - bginside = :lightgray, - fg = :black, - fggrid = :white, - fgborder = _invisible, - fgaxis = _invisible -) - -function set_theme(sym::Symbol) - default(; _themes[sym]...) -end +@deprecate set_theme(s) theme(s)