added hline/vline support in gadfly

This commit is contained in:
Thomas Breloff 2015-09-17 10:14:13 -04:00
parent c5300cd7be
commit ea7867429f
7 changed files with 64 additions and 16 deletions

View File

@ -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)
# ---------------------------------------------------------

View File

@ -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

View File

@ -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 = []

View File

@ -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

View File

@ -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...)

View File

@ -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]

View File

@ -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