From c8d6b1fab0c40981ff1d5f81705ba6a0ee76723d Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Wed, 4 May 2016 14:24:15 -0400 Subject: [PATCH] linewidth fix; kw macro --- src/Plots.jl | 3 +-- src/backends/gr.jl | 2 +- src/plot.jl | 14 +++++++++----- src/recipes.jl | 8 ++++---- src/subplot.jl | 1 + 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/Plots.jl b/src/Plots.jl index 8643ee0a..d74f860c 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -144,8 +144,7 @@ export arcdiagram, chorddiagram, - @default_kw, - @force_kw, + @kw, translate, translate!, diff --git a/src/backends/gr.jl b/src/backends/gr.jl index d81daea7..947297aa 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -734,9 +734,9 @@ function gr_display(plt::Plot{GRBackend}, clear=true, update=true, GR.setlinetype(1) GR.setlinewidth(1) GR.drawrect(px - 0.08, px + w + 0.02, py + dy, py - dy * length(plt.seriesargs)) - haskey(d, :linewidth) && GR.setlinewidth(d[:linewidth]) i = 0 for p in plt.seriesargs + haskey(p, :linewidth) && GR.setlinewidth(p[:linewidth]) if p[:linetype] in [:path, :line, :steppre, :steppost, :sticks] haskey(p, :linecolor) && GR.setlinecolorind(gr_getcolorind(p[:linecolor])) haskey(p, :linestyle) && GR.setlinetype(gr_linetype[p[:linestyle]]) diff --git a/src/plot.jl b/src/plot.jl index 461e55dc..6df93b3f 100644 --- a/src/plot.jl +++ b/src/plot.jl @@ -149,6 +149,13 @@ function filter_data!(d::KW, idxfilter) end end +function _replace_linewidth(d::KW) + # get a good default linewidth... 0 for surface and heatmaps + if get(d, :linewidth, :auto) == :auto + d[:linewidth] = (get(d, :linetype, :path) in (:surface,:heatmap,:image) ? 0 : 1) + end +end + # no grouping function _add_series(plt::Plot, d::KW, ::Void, args...; idxfilter = nothing, @@ -189,11 +196,6 @@ function _add_series(plt::Plot, d::KW, ::Void, args...; delete!(di, k) end - # get a good default linewidth... 0 for surface and heatmaps - if get(di, :linewidth, :auto) == :auto - di[:linewidth] = (get(di, :linetype, :path) in (:surface,:heatmap,:image) ? 0 : 1) - end - # merge in plotarg_overrides plotarg_overrides = pop!(di, :plotarg_overrides, nothing) if plotarg_overrides != nothing @@ -203,6 +205,8 @@ function _add_series(plt::Plot, d::KW, ::Void, args...; dumpdict(di, "Series $i") + _replace_linewidth(di) + _add_series(plt.backend, plt, di) end end diff --git a/src/recipes.jl b/src/recipes.jl index f347c3a5..dafaa0d3 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -28,13 +28,13 @@ function _apply_recipe(d::KW, args...; issubplot=false, kw...) args end -macro default_kw(k, v) +macro kw(k, v) esc(:(get!(d, $k, $v))) end -macro force_kw(k, v) - esc(:(d[$k] = $v)) -end +# macro force_kw(k, v) +# esc(:(d[$k] = $v)) +# end # --------------------------------------------------------------------------- diff --git a/src/subplot.jl b/src/subplot.jl index 153cbaf0..789e732a 100644 --- a/src/subplot.jl +++ b/src/subplot.jl @@ -286,6 +286,7 @@ function _add_series_subplot(subplt::Subplot, d::KW, ::Void, args...; dumpdict(di, "subplot! kwList $i") dumpdict(plt.plotargs, "plt.plotargs before plotting") + _replace_linewidth(di) _add_series_subplot(plt, di) end end