diff --git a/src/Plots.jl b/src/Plots.jl index b4a1a9c5..47008ffc 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -6,30 +6,32 @@ using Colors export plotter, - plot, - plot_display, - subplot, - plotter!, + plot, plot!, + plot_display, plot_display!, + subplot, subplot!, currentPlot, - plotDefault, - scatter, - bar, - histogram, - heatmap, - sticks, - currentPlot!, + plotDefault, plotDefault!, + scatter, scatter!, + bar, bar!, + histogram, histogram!, + heatmap, heatmap!, + sticks, sticks!, + hline, + hline!, + vline, + vline!, savepng, @@ -70,6 +72,10 @@ heatmap(args...; kw...) = plot(args...; kw..., linetype = :heatmap) heatmap!(args...; kw...) = plot!(args...; kw..., linetype = :heatmap) sticks(args...; kw...) = plot(args...; kw..., linetype = :sticks, marker = :ellipse) sticks!(args...; kw...) = plot!(args...; kw..., linetype = :sticks, marker = :ellipse) +hline(args...; kw...) = plot(args...; kw..., linetype = :hline) +hline!(args...; kw...) = plot!(args...; kw..., linetype = :hline) +vline(args...; kw...) = plot(args...; kw..., linetype = :vline) +vline!(args...; kw...) = plot!(args...; kw..., linetype = :vline) # --------------------------------------------------------- diff --git a/src/args.jl b/src/args.jl index fb6ef6fe..727253e2 100644 --- a/src/args.jl +++ b/src/args.jl @@ -5,7 +5,18 @@ const COLORS = distinguishable_colors(20) const AXES = [:left, :right] -const TYPES = [:line, :step, :stepinverted, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar] +const TYPES = [:line, + :step, + :stepinverted, + :sticks, + :scatter, + :heatmap, + :hexbin, + :hist, + :bar, + :hline, + :vline, + ] const STYLES = [:solid, :dash, :dot, :dashdot, :dashdotdot] const MARKERS = [:ellipse, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star1, :star2, :hexagon] @@ -207,3 +218,9 @@ function getPlotKeywordArgs(pkg::PlottingPackage, kw, idx::Int, n::Int) d end + +# ----------------------------------------------------------------------------- + + +# TODO: arg aliases + diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index dbec994f..b3dc83dc 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -9,7 +9,7 @@ gadfly!() = plotter!(:gadfly) supportedArgs(::GadflyPackage) = setdiff(ARGS, [:heatmap_c, :fillto, :pos]) supportedAxes(::GadflyPackage) = setdiff(ALL_AXES, [:right]) -supportedTypes(::GadflyPackage) = setdiff(ALL_TYPES, [:stepinverted]) +supportedTypes(::GadflyPackage) = [:none, :line, :step, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline] supportedStyles(::GadflyPackage) = [:auto, :solid] supportedMarkers(::GadflyPackage) = [:none, :auto, :rect, :ellipse, :diamond, :cross] @@ -120,6 +120,25 @@ end # end +function addGadflyFixedLines!(gplt, d::Dict) + + sz = d[:width] * Gadfly.px + c = d[:color] + + if d[:linetype] == :hline + geom = Gadfly.Geom.hline(color=c, size=sz) + layer = Gadfly.layer(yintercept = d[:y], geom) + else + geom = Gadfly.Geom.vline(color=c, size=sz) + layer = Gadfly.layer(xintercept = d[:y], geom) + end + + prepend!(gplt.layers, layer) +end + + + + function addGadflySeries!(gplt, d::Dict) # first things first... lets so the sticks hack @@ -130,6 +149,10 @@ function addGadflySeries!(gplt, d::Dict) if dScatter[:marker] != :none push!(gplt.guides, createGadflyAnnotation(dScatter)) end + + elseif d[:linetype] in (:hline, :vline) + addGadflyFixedLines!(gplt, d) + return end gfargs = [] diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 66f88635..acb846f3 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -10,7 +10,7 @@ pyplot!() = plotter!(:pyplot) supportedArgs(::PyPlotPackage) = setdiff(ARGS, [:reg, :heatmap_c, :fillto, :pos]) supportedAxes(::PyPlotPackage) = ALL_AXES -supportedTypes(::PyPlotPackage) = ALL_TYPES +supportedTypes(::PyPlotPackage) = [:none, :line, :step, :stepinverted, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar] supportedStyles(::PyPlotPackage) = setdiff(ALL_STYLES, [:dashdotdot]) supportedMarkers(::PyPlotPackage) = setdiff(ALL_MARKERS, [:star2]) subplotSupported(::PyPlotPackage) = false diff --git a/src/backends/qwt.jl b/src/backends/qwt.jl index 7e7816bf..3b6c81dc 100644 --- a/src/backends/qwt.jl +++ b/src/backends/qwt.jl @@ -6,6 +6,8 @@ immutable QwtPackage <: PlottingPackage end export qwt! qwt!() = plotter!(:qwt) +supportedTypes(::QwtPackage) = [:none, :line, :step, :stepinverted, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar] + # ------------------------------- function adjustQwtKeywords(iscreating::Bool; kw...) diff --git a/src/backends/unicodeplots.jl b/src/backends/unicodeplots.jl index 1a9acb1c..cd3f9307 100644 --- a/src/backends/unicodeplots.jl +++ b/src/backends/unicodeplots.jl @@ -10,7 +10,7 @@ unicodeplots!() = plotter!(:unicodeplots) supportedArgs(::UnicodePlotsPackage) = setdiff(ARGS, [:reg, :heatmap_c, :fillto, :pos]) supportedAxes(::UnicodePlotsPackage) = [:auto, :left] -supportedTypes(::UnicodePlotsPackage) = setdiff(ALL_TYPES, [:stepinverted]) +supportedTypes(::UnicodePlotsPackage) = [:none, :line, :step, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline] supportedStyles(::UnicodePlotsPackage) = [:auto, :solid] supportedMarkers(::UnicodePlotsPackage) = [:none, :auto, :ellipse] diff --git a/src/plotter.jl b/src/plotter.jl index bceca753..62d6df30 100644 --- a/src/plotter.jl +++ b/src/plotter.jl @@ -142,7 +142,7 @@ function plotter() error("Unknown plotter $currentBackendSymbol. Choose from: $BACKENDS") end push!(INITIALIZED_BACKENDS, currentBackendSymbol) - println("[Plots.jl] done.") + # println("[Plots.jl] done.") end CURRENT_BACKEND.pkg