From e08957f5ec4571de5a13e3f89b783644c2a21ff5 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Sat, 24 Oct 2015 20:59:42 -0400 Subject: [PATCH] cleanup and fixes for subplot logic --- src/args.jl | 2 - src/backends/pyplot.jl | 5 +- src/plot.jl | 30 +-------- src/subplot.jl | 107 +++++++------------------------ test/refimg/v0.4/pyplot/ref1.png | Bin 0 -> 46426 bytes 5 files changed, 27 insertions(+), 117 deletions(-) create mode 100644 test/refimg/v0.4/pyplot/ref1.png diff --git a/src/args.jl b/src/args.jl index 7e36cac8..cb18f451 100644 --- a/src/args.jl +++ b/src/args.jl @@ -638,9 +638,7 @@ function getSeriesArgs(pkg::PlottingPackage, initargs::Dict, kw, commandIndex::I aliasesAndAutopick(d, :markershape, _markerAliases, supportedMarkers(pkg), plotIndex) # update color - # dumpdict(d, "before color") d[:color] = getSeriesRGBColor(d[:color], initargs, plotIndex) - # dumpdict(d, "after color") # update markercolor mc = d[:markercolor] diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 33c645ce..cf2edf76 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -121,7 +121,7 @@ nop() = nothing makePyPlotCurrent(wrap::PyPlotFigWrapper) = PyPlot.figure(wrap.fig.o[:number]) -makePyPlotCurrent(wrap::PyPlotAxisWrapper) = PyPlot.sca(wrap.ax.o) +makePyPlotCurrent(wrap::PyPlotAxisWrapper) = nothing #PyPlot.sca(wrap.ax.o) makePyPlotCurrent(plt::Plot{PyPlotPackage}) = makePyPlotCurrent(plt.o) @@ -341,7 +341,8 @@ function updatePlotItems(plt::Plot{PyPlotPackage}, d::Dict) # PyPlot.sca(ax) # title and axis labels - haskey(d, :title) && PyPlot.title(d[:title]) + # haskey(d, :title) && PyPlot.title(d[:title]) + haskey(d, :title) && ax[:set_title](d[:title]) haskey(d, :xlabel) && ax[:set_xlabel](d[:xlabel]) if haskey(d, :ylabel) ax[:set_ylabel](d[:ylabel]) diff --git a/src/plot.jl b/src/plot.jl index a6e8d1bd..b53c935a 100644 --- a/src/plot.jl +++ b/src/plot.jl @@ -46,19 +46,11 @@ function plot(args...; kw...) pkg = backend() d = Dict(kw) preprocessArgs!(d) - dumpdict(d, "After plot preprocessing") - # # ensure we're passing in an RGB - # if haskey(d, :background_color) - # d[:background_color] = convertColor(d[:background_color]) - # end - plt = plot(pkg; getPlotArgs(pkg, d, 1)...) # create a new, blank plot delete!(d, :background_color) - # print(d) - # return plt plot!(plt, args...; d...) # add to it end @@ -82,10 +74,6 @@ end # this adds to a specific plot... most plot commands will flow through here function plot!(plt::Plot, args...; kw...) - # println(plt) - # println(args) - # println(kw) - d = Dict(kw) preprocessArgs!(d) @@ -93,21 +81,13 @@ function plot!(plt::Plot, args...; kw...) warnOnUnsupportedArgs(plt.backend, d) - # handle a "group by" mechanism. - # group = get(d, :group, nothing) - # if group == nothing - # groupargs = [] - # else - # if haskey(d, :subplot) - # groupargs = extractGroupArgs(group, d[:dataframe]) - # end + # grouping groupargs = get(d, :group, nothing) == nothing ? [] : [extractGroupArgs(d[:group], args...)] # just in case the backend needs to set up the plot (make it current or something) preparePlotUpdate(plt) # get the list of dictionaries, one per series - # dumpdict(d, "before createKWargsList") kwList, xmeta, ymeta = createKWargsList(plt, groupargs..., args...; d...) # if we were able to extract guide information from the series inputs, then update the plot @@ -136,11 +116,11 @@ function plot!(plt::Plot, args...; kw...) warnOnUnsupportedScales(plt.backend, d) - dumpdict(d, "Updating plot items") # add title, axis labels, ticks, etc if !haskey(d, :subplot) d = merge!(plt.initargs, d) + dumpdict(d, "Updating plot items") updatePlotItems(plt, d) end current(plt) @@ -161,25 +141,19 @@ end function setTicksFromStringVector(d::Dict, di::Dict, sym::Symbol, ticksym::Symbol) # if the x or y values are strings, set ticks to the unique values, and x/y to the indices of the ticks - # @show sym di v = di[sym] - # @show v isa(v, AbstractArray) || return T = eltype(v) - # @show T if T <: @compat(AbstractString) || (!isempty(T.types) && all(x -> x <: @compat(AbstractString), T.types)) - # @show sym ticksym di[sym] ticks = unique(di[sym]) - # @show ticks di[sym] = Int[findnext(ticks, v, 1) for v in di[sym]] if !haskey(d, ticksym) || d[ticksym] == :auto d[ticksym] = (collect(1:length(ticks)), UTF8String[t for t in ticks]) end end - # @show sym ticksym di[sym] d[ticksym] end # -------------------------------------------------------------------- diff --git a/src/subplot.jl b/src/subplot.jl index 78f85881..86c7f8fb 100644 --- a/src/subplot.jl +++ b/src/subplot.jl @@ -200,62 +200,25 @@ end # NOTE: for the subplot calls building from existing plots, we need the first plot to be separate to ensure dispatch calls this instead of the more general subplot(args...; kw...) # grid layout -# function subplot{P}(plt1::Plot{P}, plts::Plot{P}...; nr::Integer = -1, nc::Integer = -1, link = false, linkx = false, linky = false) function subplot{P}(plt1::Plot{P}, plts::Plot{P}...; kw...) d = Dict(kw) layout = subplotlayout(length(plts)+1, get(d, :nr, -1), get(d, :nc, -1)) - subplot(vcat(plt1, plts...), layout, d) #, link || linkx, link || linky) + subplot(vcat(plt1, plts...), layout, d) end # explicit layout -function subplot{P,I<:Integer}(pltsPerRow::AVec{I}, plt1::Plot{P}, plts::Plot{P}...; kw...) #link = false, linkx = false, linky = false) +function subplot{P,I<:Integer}(pltsPerRow::AVec{I}, plt1::Plot{P}, plts::Plot{P}...; kw...) layout = subplotlayout(pltsPerRow) - subplot(vcat(plt1, plts...), layout, Dict(kw)) #, link || linkx, link || linky) + subplot(vcat(plt1, plts...), layout, Dict(kw)) end # this will be called internally -function subplot{P<:PlottingPackage}(plts::AVec{Plot{P}}, layout::SubplotLayout, d::Dict) #, linkx::Bool, linky::Bool) +function subplot{P<:PlottingPackage}(plts::AVec{Plot{P}}, layout::SubplotLayout, d::Dict) p = length(layout) n = sum([plt.n for plt in plts]) subplt = Subplot(nothing, collect(plts), P(), p, n, layout, Dict(), false, false, false, (r,c) -> (nothing,nothing)) - # # update links - # for s in (:linkx, :linky, :linkfunc) - # if haskey(d, s) - # setfield!(subplt, s, d[s]) - # delete!(d, s) - # end - # end - preprocessSubplot(subplt, d) - - # # init (after plot creation) - # if !subplt.initialized - # subplt.initialized = buildSubplotObject!(subplt, false) - # end - - # # add title, axis labels, ticks, etc - # for (i,plt) in enumerate(subplt.plts) - # di = copy(d) - # for (k,v) in di - # if typeof(v) <: AVec - # di[k] = v[mod1(i, length(v))] - # elseif typeof(v) <: AMat - # m = size(v,2) - # di[k] = (size(v,1) == 1 ? v[1, mod1(i, m)] : v[:, mod1(i, m)]) - # end - # end - # dumpdict(di, "Updating sp $i") - # updatePlotItems(plt, di) - # end - - # # handle links - # subplt.linkx && linkAxis(subplt, true) - # subplt.linky && linkAxis(subplt, false) - - # # set this to be current - # current(subplt) - postprocessSubplot(subplt, d) subplt @@ -288,11 +251,9 @@ function postprocessSubplot(subplt::Subplot, d::Dict) # add title, axis labels, ticks, etc for (i,plt) in enumerate(subplt.plts) - # di = copy(d) # get the full initargs, overriding any new settings - # TODO: should this be part of the main `plot` command in plot.jl??? - di = merge!(plt.initargs, copy(d)) + di = copy(merge!(plt.initargs, d)) for (k,v) in di if typeof(v) <: AVec @@ -339,16 +300,6 @@ function subplot!(subplt::Subplot, args...; kw...) d = Dict(kw) preprocessSubplot(subplt, d) - # preprocessArgs!(d) - # dumpdict(d, "After subplot! preprocessing") - - # # process links. TODO: extract to separate function - # for s in (:linkx, :linky, :linkfunc) - # if haskey(d, s) - # setfield!(subplt, s, d[s]) - # delete!(d, s) - # end - # end # create the underlying object (each backend will do this differently) # note: we call it once before doing the individual plots, and once after @@ -386,40 +337,10 @@ function subplot!(subplt::Subplot, args...; kw...) end dumpdict(di, "subplot! kwList $i") - plot!(plt; di...) + _plot_from_subplot!(plt; di...) end postprocessSubplot(subplt, d) - # # -- TODO: extract this section into a separate function... duplicates the other subplot --------- - - # # create the underlying object (each backend will do this differently) - # if !subplt.initialized - # subplt.initialized = buildSubplotObject!(subplt, false) - # # subplt.initialized = true - # end - - - # # add title, axis labels, ticks, etc - # for (i,plt) in enumerate(subplt.plts) - # di = copy(d) - # for (k,v) in di - # if typeof(v) <: AVec - # di[k] = v[mod1(i, length(v))] - # elseif typeof(v) <: AMat - # m = size(v,2) - # di[k] = (size(v,1) == 1 ? v[1, mod1(i, m)] : v[:, mod1(i, m)]) - # end - # end - # dumpdict(di, "Updating sp $i") - # updatePlotItems(plt, di) - # end - - # subplt.linkx && linkAxis(subplt, true) - # subplt.linky && linkAxis(subplt, false) - - # # set this to be current - # current(subplt) - # # --- end extract ---- # show it automatically? if haskey(d, :show) && d[:show] @@ -430,3 +351,19 @@ function subplot!(subplt::Subplot, args...; kw...) end + +function _plot_from_subplot!(plt::Plot, args...; kw...) + d = Dict(kw) + + setTicksFromStringVector(d, d, :x, :xticks) + setTicksFromStringVector(d, d, :y, :yticks) + + dumpdict(d, "Plot from subplot") + plot!(plt.backend, plt; d...) + + addAnnotations(plt, d) + warnOnUnsupportedScales(plt.backend, d) +end + + + diff --git a/test/refimg/v0.4/pyplot/ref1.png b/test/refimg/v0.4/pyplot/ref1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1d4cae8b3e380413f4e0c0de6be17f205a334d GIT binary patch literal 46426 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

8*_Lnw*^0lCzA#)OM%J|?OkJtZ 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 R1O)IUEv_I|En*P(e*pUb?r;DA literal 0 HcmV?d00001