From 33b3ee89f33a4f0721cdfdfb962931e03bad6cfd Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Mon, 9 May 2016 08:31:50 -0400 Subject: [PATCH 1/3] replaced dataframes with recipes --- src/series_args.jl | 59 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/src/series_args.jl b/src/series_args.jl index d5cc428a..7494bc2b 100644 --- a/src/series_args.jl +++ b/src/series_args.jl @@ -459,24 +459,59 @@ end function setup_dataframes() @require DataFrames begin + # @eval begin + # import DataFrames - get_data(df::DataFrames.AbstractDataFrame, arg::Symbol) = df[arg] - get_data(df::DataFrames.AbstractDataFrame, arg) = arg + DFS = Union{Symbol, AbstractVector{Symbol}} - function process_inputs(plt::AbstractPlot, d::KW, df::DataFrames.AbstractDataFrame, args...) - # d[:dataframe] = df - process_inputs(plt, d, map(arg -> get_data(df, arg), args)...) - end - - # expecting the column name of a dataframe that was passed in... anything else should error - function extractGroupArgs(s::Symbol, df::DataFrames.AbstractDataFrame, args...) - if haskey(df, s) - return extractGroupArgs(df[s]) + function handle_dfs(df::DataFrames.AbstractDataFrame, d::KW, letter, dfs::DFS) + if isa(dfs, Symbol) + get!(d, symbol(letter * "label"), string(dfs)) + collect(df[dfs]) else - error("Got a symbol, and expected that to be a key in d[:dataframe]. s=$s d=$d") + get!(d, :label, dfs') + Any[collect(df[s]) for s in dfs] end end + function handle_group(df::DataFrames.AbstractDataFrame, d::KW) + if haskey(d, :group) + g = d[:group] + if isa(g, Symbol) + d[:group] = collect(df[g]) + end + end + end + + @recipe function plot(df::DataFrames.AbstractDataFrame, sy::DFS) + handle_group(df, d) + handle_dfs(df, d, "y", sy) + end + + @recipe function plot(df::DataFrames.AbstractDataFrame, sx::DFS, sy::DFS) + handle_group(df, d) + x = handle_dfs(df, d, "x", sx) + y = handle_dfs(df, d, "y", sy) + x, y + end + + # get_data(df::DataFrames.AbstractDataFrame, arg::Symbol) = df[arg] + # get_data(df::DataFrames.AbstractDataFrame, arg) = arg + # + # function process_inputs(plt::AbstractPlot, d::KW, df::DataFrames.AbstractDataFrame, args...) + # # d[:dataframe] = df + # process_inputs(plt, d, map(arg -> get_data(df, arg), args)...) + # end + # + # # expecting the column name of a dataframe that was passed in... anything else should error + # function extractGroupArgs(s::Symbol, df::DataFrames.AbstractDataFrame, args...) + # if haskey(df, s) + # return extractGroupArgs(df[s]) + # else + # error("Got a symbol, and expected that to be a key in d[:dataframe]. s=$s d=$d") + # end + # end + # function getDataFrameFromKW(d::KW) # get(d, :dataframe) do # error("Missing dataframe argument!") From c563204b0a16958e443423369e3e41ab720f8db0 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Mon, 9 May 2016 09:01:05 -0400 Subject: [PATCH 2/3] added RecipesBase dep --- REQUIRE | 1 + test/REQUIRE | 1 + 2 files changed, 2 insertions(+) diff --git a/REQUIRE b/REQUIRE index 126413bb..37795210 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,5 +1,6 @@ julia 0.4 +RecipesBase Colors Reexport Compat diff --git a/test/REQUIRE b/test/REQUIRE index 3a5eafbd..b8806bb9 100644 --- a/test/REQUIRE +++ b/test/REQUIRE @@ -1,5 +1,6 @@ julia 0.4 +RecipesBase Colors Reexport Requires From 09421c9189dbb871af38b8af7c9f193f19adad63 Mon Sep 17 00:00:00 2001 From: Josef Heinen Date: Mon, 9 May 2016 17:10:20 +0200 Subject: [PATCH 3/3] Fix axes offset bug (#221) --- src/backends/gr.jl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/backends/gr.jl b/src/backends/gr.jl index 6b7ec810..6ce8081d 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -228,6 +228,8 @@ function gr_display(plt::Plot{GRBackend}, clear=true, update=true, GR.setfillintstyle(GR.INTSTYLE_SOLID) GR.setfillcolorind(gr_getcolorind(d[:background_color_outside])) GR.fillrect(vp[1], vp[2], vp[3], vp[4]) + c = getColor(d[:background_color_inside]) + dark_bg = 0.21 * c.r + 0.72 * c.g + 0.07 * c.b < 0.9 GR.setfillcolorind(gr_getcolorind(d[:background_color_inside])) GR.fillrect(viewport[1], viewport[2], viewport[3], viewport[4]) GR.selntran(1) @@ -356,6 +358,7 @@ function gr_display(plt::Plot{GRBackend}, clear=true, update=true, yorg = (ymax, ymin) end + extrema[axis,:] = [xmin, xmax, ymin, ymax] GR.setwindow(xmin, xmax, ymin, ymax) GR.setscale(scale) @@ -371,8 +374,12 @@ function gr_display(plt::Plot{GRBackend}, clear=true, update=true, if outside_ticks ticksize = -ticksize end - if grid_flag && fg == 1 - GR.grid(xtick, ytick, 0, 0, majorx, majory) + if grid_flag + if dark_bg + GR.grid(xtick * majorx, ytick * majory, 0, 0, 1, 1) + else + GR.grid(xtick, ytick, 0, 0, majorx, majory) + end end GR.setlinecolorind(gr_getcolorind(d[:foreground_color_axis])) if num_axes == 1