diff --git a/src/args.jl b/src/args.jl index c0222eb5..f7908d83 100644 --- a/src/args.jl +++ b/src/args.jl @@ -1,35 +1,15 @@ -# const COLORS = [:black, :blue, :green, :red, :darkGray, :darkCyan, :darkYellow, :darkMagenta, -# :darkBlue, :darkGreen, :darkRed, :gray, :cyan, :yellow, :magenta] +const _allAxes = [:auto, :left, :right] +const _allTypes = [:none, :line, :step, :stepinverted, :sticks, :scatter, + :heatmap, :hexbin, :hist, :bar, :hline, :vline, :ohlc] +const _allStyles = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] +const _allMarkers = [:none, :auto, :ellipse, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon, :octagon] -# const COLORS = distinguishable_colors(20) -const AXES = [:left, :right] -const TYPES = [:line, - :step, - :stepinverted, - :sticks, - :scatter, - :heatmap, - :hexbin, - :hist, - :bar, - :hline, - :vline, - :ohlc, - ] -const STYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] -const MARKERS = [:ellipse, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon, :octagon] - -const ALL_AXES = vcat(:auto, AXES) -const ALL_TYPES = vcat(:none, TYPES) -const ALL_STYLES = vcat(:auto, STYLES) -const ALL_MARKERS = vcat(:none, :auto, MARKERS) - -supportedAxes(::PlottingPackage) = ALL_AXES -supportedTypes(::PlottingPackage) = ALL_TYPES -supportedStyles(::PlottingPackage) = ALL_STYLES -supportedMarkers(::PlottingPackage) = ALL_MARKERS +supportedAxes(::PlottingPackage) = _allAxes +supportedTypes(::PlottingPackage) = _allTypes +supportedStyles(::PlottingPackage) = _allStyles +supportedMarkers(::PlottingPackage) = _allMarkers subplotSupported(::PlottingPackage) = true supportedAxes() = supportedAxes(plotter()) @@ -43,47 +23,47 @@ subplotSupported() = subplotSupported(plotter()) const _seriesDefaults = Dict{Symbol, Any}() # series-specific -_seriesDefaults[:axis] = :left -_seriesDefaults[:color] = :auto -_seriesDefaults[:label] = "AUTO" -_seriesDefaults[:width] = 1 -_seriesDefaults[:linetype] = :line -_seriesDefaults[:linestyle] = :solid -_seriesDefaults[:marker] = :none +_seriesDefaults[:axis] = :left +_seriesDefaults[:color] = :auto +_seriesDefaults[:label] = "AUTO" +_seriesDefaults[:width] = 1 +_seriesDefaults[:linetype] = :line +_seriesDefaults[:linestyle] = :solid +_seriesDefaults[:marker] = :none _seriesDefaults[:markercolor] = :match -_seriesDefaults[:markersize] = 6 -_seriesDefaults[:nbins] = 100 # number of bins for heatmaps and hists -_seriesDefaults[:heatmap_c] = (0.15, 0.5) -_seriesDefaults[:fillto] = nothing # fills in the area -_seriesDefaults[:reg] = false # regression line? -_seriesDefaults[:group] = nothing -_seriesDefaults[:ribbon] = nothing -_seriesDefaults[:args] = [] # additional args to pass to the backend -_seriesDefaults[:kwargs] = [] # additional keyword args to pass to the backend +_seriesDefaults[:markersize] = 6 +_seriesDefaults[:nbins] = 100 # number of bins for heatmaps and hists +_seriesDefaults[:heatmap_c] = (0.15, 0.5) +_seriesDefaults[:fillto] = nothing # fills in the area +_seriesDefaults[:reg] = false # regression line? +_seriesDefaults[:group] = nothing +_seriesDefaults[:ribbon] = nothing +_seriesDefaults[:args] = [] # additional args to pass to the backend +_seriesDefaults[:kwargs] = [] # additional keyword args to pass to the backend # note: can be Vector{Dict} or Vector{Tuple} const _plotDefaults = Dict{Symbol, Any}() # plot globals -_plotDefaults[:title] = "" -_plotDefaults[:xlabel] = "" -_plotDefaults[:ylabel] = "" -_plotDefaults[:yrightlabel] = "" -_plotDefaults[:legend] = true -_plotDefaults[:background_color] = colorant"white" -_plotDefaults[:xticks] = true -_plotDefaults[:yticks] = true -_plotDefaults[:size] = (800,600) -_plotDefaults[:windowtitle] = "Plots.jl" -_plotDefaults[:show] = false +_plotDefaults[:title] = "" +_plotDefaults[:xlabel] = "" +_plotDefaults[:ylabel] = "" +_plotDefaults[:yrightlabel] = "" +_plotDefaults[:legend] = true +_plotDefaults[:background_color] = colorant"white" +_plotDefaults[:xticks] = true +_plotDefaults[:yticks] = true +_plotDefaults[:size] = (800,600) +_plotDefaults[:windowtitle] = "Plots.jl" +_plotDefaults[:show] = false # TODO: x/y scales -const ARGS = sort(collect(intersect(keys(_seriesDefaults), keys(_plotDefaults)))) -supportedArgs(::PlottingPackage) = ARGS +const _allArgs = sort(collect(intersect(keys(_seriesDefaults), keys(_plotDefaults)))) +supportedArgs(::PlottingPackage) = _allArgs supportedArgs() = supportedArgs(plotter()) @@ -101,7 +81,7 @@ autopick_ignore_none_auto(notarr, idx::Integer) = notarr # Alternate args -const keyAliases = Dict( +const _keyAliases = Dict( :c => :color, :l => :label, :w => :width, @@ -144,16 +124,16 @@ const keyAliases = Dict( :display => :show, ) -# add all pluralized forms to the keyAliases dict +# add all pluralized forms to the _keyAliases dict for arg in keys(_seriesDefaults) - keyAliases[makeplural(arg)] = arg + _keyAliases[makeplural(arg)] = arg end function replaceAliases!(d::Dict) for (k,v) in d - if haskey(keyAliases, k) - d[keyAliases[k]] = v + if haskey(_keyAliases, k) + d[_keyAliases[k]] = v delete!(d, k) end end diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index c8c86c95..7e59b99e 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -7,8 +7,8 @@ export gadfly! gadfly!() = plotter!(:gadfly) -supportedArgs(::GadflyPackage) = setdiff(ARGS, [:heatmap_c, :pos]) -supportedAxes(::GadflyPackage) = setdiff(ALL_AXES, [:right]) +supportedArgs(::GadflyPackage) = setdiff(_allArgs, [:heatmap_c, :pos]) +supportedAxes(::GadflyPackage) = setdiff(_allAxes, [:right]) supportedTypes(::GadflyPackage) = [:none, :line, :step, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline, :ohlc] supportedStyles(::GadflyPackage) = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] supportedMarkers(::GadflyPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon, :octagon] diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 951f69ae..120ee921 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -8,8 +8,8 @@ pyplot!() = plotter!(:pyplot) # ------------------------------- -supportedArgs(::PyPlotPackage) = setdiff(ARGS, [:reg, :heatmap_c, :fillto, :pos]) -supportedAxes(::PyPlotPackage) = ALL_AXES +supportedArgs(::PyPlotPackage) = setdiff(_allArgs, [:reg, :heatmap_c, :fillto, :pos]) +supportedAxes(::PyPlotPackage) = _allAxes supportedTypes(::PyPlotPackage) = [:none, :line, :step, :stepinverted, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar] supportedStyles(::PyPlotPackage) = [:auto, :solid, :dash, :dot, :dashdot] supportedMarkers(::PyPlotPackage) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :hexagon] diff --git a/src/backends/template.jl b/src/backends/template.jl index a6a28257..4f4d61fd 100644 --- a/src/backends/template.jl +++ b/src/backends/template.jl @@ -10,11 +10,11 @@ export [pkgname]! # --------------------------------------------------------------------------- -supportedArgs(::[PkgName]Package) = ARGS -supportedAxes(::[PkgName]Package) = ALL_AXES -supportedTypes(::[PkgName]Package) = ALL_TYPES -supportedStyles(::[PkgName]Package) = ALL_STYLES -supportedMarkers(::[PkgName]Package) = ALL_MARKERS +supportedArgs(::[PkgName]Package) = _allArgs +supportedAxes(::[PkgName]Package) = _allAxes +supportedTypes(::[PkgName]Package) = _allTypes +supportedStyles(::[PkgName]Package) = _allStyles +supportedMarkers(::[PkgName]Package) = _allMarkers subplotSupported(::[PkgName]Package) = false # --------------------------------------------------------------------------- diff --git a/src/backends/unicodeplots.jl b/src/backends/unicodeplots.jl index 74672c6d..48ce4f5f 100644 --- a/src/backends/unicodeplots.jl +++ b/src/backends/unicodeplots.jl @@ -8,7 +8,7 @@ unicodeplots!() = plotter!(:unicodeplots) # ------------------------------- -supportedArgs(::UnicodePlotsPackage) = setdiff(ARGS, [:reg, :heatmap_c, :fillto, :pos]) +supportedArgs(::UnicodePlotsPackage) = setdiff(_allArgs, [:reg, :heatmap_c, :fillto, :pos]) supportedAxes(::UnicodePlotsPackage) = [:auto, :left] supportedTypes(::UnicodePlotsPackage) = [:none, :line, :step, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline] supportedStyles(::UnicodePlotsPackage) = [:auto, :solid] diff --git a/src/backends/winston.jl b/src/backends/winston.jl index c6f5b342..3aab9ae9 100644 --- a/src/backends/winston.jl +++ b/src/backends/winston.jl @@ -30,11 +30,11 @@ const winston_marker = Dict(:none=>".", ) -supportedArgs(::WinstonPackage) = setdiff(ARGS, [:heatmap_c, :fillto, :pos, :markercolor, :background_color]) +supportedArgs(::WinstonPackage) = setdiff(_allArgs, [:heatmap_c, :fillto, :pos, :markercolor, :background_color]) supportedAxes(::WinstonPackage) = [:auto, :left] supportedTypes(::WinstonPackage) = [:none, :line, :sticks, :scatter, :hist, :bar] -supportedStyles(::WinstonPackage) = intersect(ALL_STYLES, collect(keys(winston_linestyle))) # [:auto, :solid, :dash, :dot, :dashdot] -supportedMarkers(::WinstonPackage) = intersect(ALL_MARKERS, collect(keys(winston_marker))) # [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1] +supportedStyles(::WinstonPackage) = intersect(_allStyles, collect(keys(winston_linestyle))) # [:auto, :solid, :dash, :dot, :dashdot] +supportedMarkers(::WinstonPackage) = intersect(_allMarkers, collect(keys(winston_marker))) # [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1] subplotSupported(::WinstonPackage) = false # ---------------------------------------------------------------------------