Plots.jl/src/args.jl
2015-09-04 19:00:45 -04:00

75 lines
2.1 KiB
Julia

# const COLORS = [:black, :blue, :green, :red, :darkGray, :darkCyan, :darkYellow, :darkMagenta,
# :darkBlue, :darkGreen, :darkRed, :gray, :cyan, :yellow, :magenta]
const COLORS = distinguishable_colors(20)
const NUMCOLORS = length(COLORS)
# these are valid choices... first one is default value if unset
const LINE_AXES = (:left, :right)
const LINE_TYPES = (:line, :step, :stepinverted, :sticks, :dots, :none, :heatmap, :hist, :bar)
const LINE_STYLES = (:solid, :dash, :dot, :dashdot, :dashdotdot)
const LINE_MARKERS = (:none, :ellipse, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon)
# -----------------------------------------------------------------------------
const PLOT_DEFAULTS = Dict{Symbol, Any}()
# series-specific
PLOT_DEFAULTS[:axis] = :left
PLOT_DEFAULTS[:color] = :auto
PLOT_DEFAULTS[:label] = "AUTO"
PLOT_DEFAULTS[:width] = 1
PLOT_DEFAULTS[:linetype] = :line
PLOT_DEFAULTS[:linestyle] = :solid
PLOT_DEFAULTS[:marker] = :none
PLOT_DEFAULTS[:markercolor] = :auto
PLOT_DEFAULTS[:markersize] = 10
PLOT_DEFAULTS[:heatmap_n] = 100
PLOT_DEFAULTS[:heatmap_c] = (0.15, 0.5)
# plot globals
PLOT_DEFAULTS[:title] = ""
PLOT_DEFAULTS[:xlabel] = ""
PLOT_DEFAULTS[:ylabel] = ""
PLOT_DEFAULTS[:yrightlabel] = ""
PLOT_DEFAULTS[:legend] = true
PLOT_DEFAULTS[:background_color] = :white
PLOT_DEFAULTS[:xticks] = true
PLOT_DEFAULTS[:yticks] = true
# TODO: x/y scales
# -----------------------------------------------------------------------------
plotDefault(sym::Symbol) = PLOT_DEFAULTS[sym]
function plotDefault!(sym::Symbol, val)
PLOT_DEFAULTS[sym] = val
end
# -----------------------------------------------------------------------------
makeplural(s::Symbol) = Symbol(string(s,"s"))
autocolor(idx::Integer) = COLORS[mod1(idx,NUMCOLORS)]
function getPlotKeywordArgs(kw, i::Int)
d = Dict(kw)
outd = Dict()
for k in keys(PLOT_DEFAULTS)
plural = makeplural(k)
if haskey(d, plural)
outd[k] = d[plural][i]
elseif haskey(d, k)
outd[k] = d[k]
else
outd[k] = PLOT_DEFAULTS[k]
end
end
outd
end