From 03a9fc341920634b00531b06a21761442c59faf8 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Tue, 6 Sep 2016 14:01:39 -0400 Subject: [PATCH] is_supported refactor; removed deprecated backends --- src/Plots.jl | 10 +- src/args.jl | 57 +-- src/backends.jl | 75 +-- src/backends/glvisualize.jl | 12 +- src/backends/gr.jl | 16 +- src/backends/pgfplots.jl | 11 +- src/backends/plotly.jl | 18 +- src/backends/plotlyjs.jl | 12 +- src/backends/pyplot.jl | 22 +- src/backends/unicodeplots.jl | 14 +- src/{ => deprecated}/backends/bokeh.jl | 2 +- src/{ => deprecated}/backends/gadfly.jl | 2 +- .../backends/gadfly_shapes.jl | 0 src/{ => deprecated}/backends/immerse.jl | 2 +- src/{ => deprecated}/backends/qwt.jl | 2 +- src/{ => deprecated}/backends/winston.jl | 2 +- src/examples.jl | 6 +- src/pipeline.jl | 2 +- src/precompile.jl | 465 ------------------ src/recipes.jl | 16 +- src/series.jl | 5 +- src/utils.jl | 2 +- test/runtests.jl | 6 +- 23 files changed, 147 insertions(+), 612 deletions(-) rename src/{ => deprecated}/backends/bokeh.jl (98%) rename src/{ => deprecated}/backends/gadfly.jl (99%) rename src/{ => deprecated}/backends/gadfly_shapes.jl (100%) rename src/{ => deprecated}/backends/immerse.jl (98%) rename src/{ => deprecated}/backends/qwt.jl (99%) rename src/{ => deprecated}/backends/winston.jl (99%) diff --git a/src/Plots.jl b/src/Plots.jl index ed2a7e7e..f69a1361 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -86,14 +86,6 @@ export arrow, Segments, - debugplots, - - supported_args, - supported_types, - supported_styles, - supported_markers, - is_subplot_supported, - Animation, frame, gif, @@ -130,8 +122,8 @@ include("types.jl") include("utils.jl") include("components.jl") include("axes.jl") -include("backends.jl") include("args.jl") +include("backends.jl") include("themes.jl") include("plot.jl") include("pipeline.jl") diff --git a/src/args.jl b/src/args.jl index 9a494fd4..2cdc5c89 100644 --- a/src/args.jl +++ b/src/args.jl @@ -319,10 +319,8 @@ const _all_defaults = KW[ ] const _all_args = sort(collect(union(map(keys, _all_defaults)...))) -supported_args(::AbstractBackend) = error("supported_args not defined") #_all_args -supported_args() = supported_args(backend()) -RecipesBase.is_key_supported(k::Symbol) = (k in supported_args()) +RecipesBase.is_key_supported(k::Symbol) = is_attr_supported(k) # ----------------------------------------------------------------------------- @@ -766,47 +764,50 @@ end # ----------------------------------------------------------------------------- -const _already_warned = Set() +const _already_warned = Dict{Symbol,Set{Symbol}}() +const _to_warn = Set{Symbol}() function warnOnUnsupported_args(pkg::AbstractBackend, d::KW) - for k in sortedkeys(d) - k in supported_args(pkg) && continue + empty!(_to_warn) + bend = backend_name(pkg) + already_warned = get!(_already_warned, bend, Set{Symbol}()) + for k in keys(d) + is_attr_supported(pkg, k) && continue k in _suppress_warnings && continue if d[k] != default(k) - if !((pkg, k) in _already_warned) - push!(_already_warned, (pkg,k)) - warn("Keyword argument $k not supported with $pkg. Choose from: $(supported_args(pkg))") - end + k in already_warned || push!(_to_warn, k) + end + end + + if !isempty(_to_warn) + for k in sort(collect(_to_warn)) + push!(already_warned, k) + warn("Keyword argument $k not supported with $pkg. Choose from: $(supported_attrs(pkg))") end end end -_markershape_supported(pkg::AbstractBackend, shape::Symbol) = shape in supported_markers(pkg) -_markershape_supported(pkg::AbstractBackend, shape::Shape) = Shape in supported_markers(pkg) -_markershape_supported(pkg::AbstractBackend, shapes::AVec) = all([_markershape_supported(pkg, shape) for shape in shapes]) +# _markershape_supported(pkg::AbstractBackend, shape::Symbol) = shape in supported_markers(pkg) +# _markershape_supported(pkg::AbstractBackend, shape::Shape) = Shape in supported_markers(pkg) +# _markershape_supported(pkg::AbstractBackend, shapes::AVec) = all([_markershape_supported(pkg, shape) for shape in shapes]) function warnOnUnsupported(pkg::AbstractBackend, d::KW) - (d[:seriestype] == :none - || d[:seriestype] in supported_types(pkg) - || warn("seriestype $(d[:seriestype]) is unsupported with $pkg. Choose from: $(supported_types(pkg))")) - (d[:linestyle] in supported_styles(pkg) - || warn("linestyle $(d[:linestyle]) is unsupported with $pkg. Choose from: $(supported_styles(pkg))")) - (d[:markershape] == :none - || _markershape_supported(pkg, d[:markershape]) - || warn("markershape $(d[:markershape]) is unsupported with $pkg. Choose from: $(supported_markers(pkg))")) + if !is_seriestype_supported(pkg, d[:seriestype]) + warn("seriestype $(d[:seriestype]) is unsupported with $pkg. Choose from: $(supported_seriestypes(pkg))") + end + if !is_style_supported(pkg, d[:linestyle]) + warn("linestyle $(d[:linestyle]) is unsupported with $pkg. Choose from: $(supported_styles(pkg))") + end + if !is_marker_supported(pkg, d[:markershape]) + warn("markershape $(d[:markershape]) is unsupported with $pkg. Choose from: $(supported_markers(pkg))") + end end function warnOnUnsupported_scales(pkg::AbstractBackend, d::KW) - scales = supported_scales(pkg) for k in (:xscale, :yscale, :zscale, :scale) if haskey(d, k) v = d[k] - all_supported = if typeof(v) <: AbstractArray - all(vi -> get(_scaleAliases, vi, vi) in scales, v) - else - get(_scaleAliases, v, v) in scales - end - if !all_supported + if !is_scale_supported(pkg, v) warn("scale $v is unsupported with $pkg. Choose from: $(supported_scales(pkg))") end end diff --git a/src/backends.jl b/src/backends.jl index 8636c895..bc008e0f 100644 --- a/src/backends.jl +++ b/src/backends.jl @@ -26,19 +26,6 @@ macro init_backend(s) end) end -@init_backend Immerse -@init_backend Gadfly -@init_backend PyPlot -@init_backend Qwt -@init_backend UnicodePlots -@init_backend Winston -@init_backend Bokeh -@init_backend Plotly -@init_backend PlotlyJS -@init_backend GR -@init_backend GLVisualize -@init_backend PGFPlots - include("backends/web.jl") # include("backends/supported.jl") @@ -194,23 +181,7 @@ function warn_on_deprecated_backend(bsym::Symbol) end end -# --------------------------------------------------------- -supported_types(::AbstractBackend) = [] -supported_styles(::AbstractBackend) = [:solid] -supported_markers(::AbstractBackend) = [:none] -supported_scales(::AbstractBackend) = [:identity] -is_subplot_supported(::AbstractBackend) = false -is_string_supported(::AbstractBackend) = false -nativeImagesSupported(b::AbstractBackend) = :image in supported_types(b) - -supported_types() = supported_types(backend()) -supported_styles() = supported_styles(backend()) -supported_markers() = supported_markers(backend()) -supported_scales() = supported_scales(backend()) -is_subplot_supported() = is_subplot_supported(backend()) -is_string_supported() = is_string_supported(backend()) -nativeImagesSupported() = nativeImagesSupported(backend()) # --------------------------------------------------------- @@ -240,7 +211,7 @@ const _base_supported_args = [ :subplot_index, :discrete_values, :projection, - + ] function merge_with_base_supported(v::AVec) @@ -252,5 +223,47 @@ function merge_with_base_supported(v::AVec) end end end - v + Set(v) end + + + +# @init_backend Immerse +# @init_backend Gadfly +@init_backend PyPlot +# @init_backend Qwt +@init_backend UnicodePlots +# @init_backend Winston +# @init_backend Bokeh +@init_backend Plotly +@init_backend PlotlyJS +@init_backend GR +@init_backend GLVisualize +@init_backend PGFPlots + +# --------------------------------------------------------- + +# create the various `is_xxx_supported` and `supported_xxxs` methods +# by default they pass through to checking membership in `_gr_xxx` +for s in (:attr, :seriestype, :marker, :style, :scale) + f = Symbol("is_", s, "_supported") + f2 = Symbol("supported_", s, "s") + @eval begin + $f(::AbstractBackend, $s) = false + $f(bend::AbstractBackend, $s::AbstractVector) = all(v -> $f(bend, v), $s) + $f($s) = $f(backend(), $s) + $f2() = $f2(backend()) + end + + for bend in backends() + bend_type = typeof(_backend_instance(bend)) + v = Symbol("_", bend, "_", s) + @eval begin + $f(::$bend_type, $s::Symbol) = $s in $v + $f2(::$bend_type) = $v + end + end +end + +# is_subplot_supported(::AbstractBackend) = false +# is_subplot_supported() = is_subplot_supported(backend()) diff --git a/src/backends/glvisualize.jl b/src/backends/glvisualize.jl index 51b4ba29..e8dd1053 100644 --- a/src/backends/glvisualize.jl +++ b/src/backends/glvisualize.jl @@ -10,7 +10,7 @@ TODO * why is there so little unicode supported in the font!??!? =# -supported_args(::GLVisualizeBackend) = merge_with_base_supported([ +const _glvisualize_attr = merge_with_base_supported([ #:annotations, :background_color_legend, :background_color_inside, :background_color_outside, :foreground_color_grid, :foreground_color_legend, :foreground_color_title, @@ -41,17 +41,17 @@ supported_args(::GLVisualizeBackend) = merge_with_base_supported([ :dpi, :hover ]) -supported_types(::GLVisualizeBackend) = [ +const _glvisualize_seriestype = [ :path, :shape, :scatter, :hexbin, :bar, :boxplot, :heatmap, :image, :volume, :contour, :contour3d, :path3d, :scatter3d, :surface, :wireframe ] -supported_styles(::GLVisualizeBackend) = [:auto, :solid, :dash, :dot, :dashdot] -supported_markers(::GLVisualizeBackend) = vcat(_allMarkers, Shape) -supported_scales(::GLVisualizeBackend) = [:identity, :ln, :log2, :log10] -is_subplot_supported(::GLVisualizeBackend) = true +const _glvisualize_style = [:auto, :solid, :dash, :dot, :dashdot] +const _glvisualize_marker = _allMarkers +const _glvisualize_scale = [:identity, :ln, :log2, :log10] +is_marker_supported(::GLVisualizeBackend, shape::Shape) = true # -------------------------------------------------------------------------------------- diff --git a/src/backends/gr.jl b/src/backends/gr.jl index 02eee1b2..9f0851eb 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -3,7 +3,8 @@ # significant contributions by @jheinen -supported_args(::GRBackend) = merge_with_base_supported([ + +const _gr_attr = merge_with_base_supported([ :annotations, :background_color_legend, :background_color_inside, :background_color_outside, :foreground_color_legend, :foreground_color_grid, :foreground_color_axis, @@ -30,16 +31,16 @@ supported_args(::GRBackend) = merge_with_base_supported([ :inset_subplots, :bar_width, ]) -supported_types(::GRBackend) = [ +const _gr_seriestype = [ :path, :scatter, :heatmap, :pie, :image, :contour, :path3d, :scatter3d, :surface, :wireframe, :shape ] -supported_styles(::GRBackend) = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] -supported_markers(::GRBackend) = vcat(_allMarkers, Shape) -supported_scales(::GRBackend) = [:identity, :log10] -is_subplot_supported(::GRBackend) = true +const _gr_style = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] +const _gr_marker = _allMarkers +const _gr_scale = [:identity, :log10] +is_marker_supported(::GRBackend, shape::Shape) = true function _initialize_backend(::GRBackend; kw...) @@ -586,6 +587,7 @@ function gr_display(sp::Subplot{GRBackend}, w, h, viewport_canvas) elseif ispolar(sp) r = gr_set_viewport_polar() rmin, rmax = GR.adjustrange(minimum(r), maximum(r)) + # rmin, rmax = axis_limits(sp[:yaxis]) gr_polaraxes(rmin, rmax) elseif draw_axes @@ -766,7 +768,7 @@ function gr_display(sp::Subplot{GRBackend}, w, h, viewport_canvas) else GR.contour(x, y, h, z, 1000) end - + # create the colorbar of contour levels if sp[:colorbar] != :none gr_set_viewport_cmap(sp) diff --git a/src/backends/pgfplots.jl b/src/backends/pgfplots.jl index bb7a0ad1..954d0bc2 100644 --- a/src/backends/pgfplots.jl +++ b/src/backends/pgfplots.jl @@ -2,7 +2,7 @@ # significant contributions by: @pkofod -supported_args(::PGFPlotsBackend) = merge_with_base_supported([ +const _pgfplots_attr = merge_with_base_supported([ # :annotations, # :background_color_legend, :background_color_inside, @@ -32,11 +32,10 @@ supported_args(::PGFPlotsBackend) = merge_with_base_supported([ :aspect_ratio, # :match_dimensions, ]) -supported_types(::PGFPlotsBackend) = [:path, :path3d, :scatter, :steppre, :stepmid, :steppost, :histogram2d, :ysticks, :xsticks, :contour] -supported_styles(::PGFPlotsBackend) = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] -supported_markers(::PGFPlotsBackend) = [:none, :auto, :circle, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5, :pentagon] #vcat(_allMarkers, Shape) -supported_scales(::PGFPlotsBackend) = [:identity, :ln, :log2, :log10] -is_subplot_supported(::PGFPlotsBackend) = false +const _pgfplots_seriestype = [:path, :path3d, :scatter, :steppre, :stepmid, :steppost, :histogram2d, :ysticks, :xsticks, :contour] +const _pgfplots_style = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] +const _pgfplots_marker = [:none, :auto, :circle, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5, :pentagon] #vcat(_allMarkers, Shape) +const _pgfplots_scale = [:identity, :ln, :log2, :log10] # -------------------------------------------------------------------------------------- diff --git a/src/backends/plotly.jl b/src/backends/plotly.jl index 390c8b4f..94cd1f9c 100644 --- a/src/backends/plotly.jl +++ b/src/backends/plotly.jl @@ -1,7 +1,7 @@ # https://plot.ly/javascript/getting-started -supported_args(::PlotlyBackend) = merge_with_base_supported([ +const _plotly_attr = merge_with_base_supported([ :annotations, :background_color_legend, :background_color_inside, :background_color_outside, :foreground_color_legend, :foreground_color_guide, @@ -31,18 +31,18 @@ supported_args(::PlotlyBackend) = merge_with_base_supported([ :inset_subplots, ]) -supported_types(::PlotlyBackend) = [ +const _plotly_seriestype = [ :path, :scatter, :bar, :pie, :heatmap, :contour, :surface, :path3d, :scatter3d, :shape, :scattergl, ] -supported_styles(::PlotlyBackend) = [:auto, :solid, :dash, :dot, :dashdot] -supported_markers(::PlotlyBackend) = [ +const _plotly_style = [:auto, :solid, :dash, :dot, :dashdot] +const _plotly_marker = [ :none, :auto, :circle, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :pentagon, :hexagon, :octagon, :vline, :hline ] -supported_scales(::PlotlyBackend) = [:identity, :log10] +const _plotly_scale = [:identity, :log10] is_subplot_supported(::PlotlyBackend) = true -is_string_supported(::PlotlyBackend) = true +# is_string_supported(::PlotlyBackend) = true # -------------------------------------------------------------------------------------- @@ -472,10 +472,10 @@ end function plotly_series_shapes(plt::Plot, series::Series) d_outs = [] - + # TODO: create a d_out for each polygon # x, y = series[:x], series[:y] - + # these are the axes that the series should be mapped to spidx = plotly_subplot_index(series[:subplot]) base_d = KW() @@ -483,7 +483,7 @@ function plotly_series_shapes(plt::Plot, series::Series) base_d[:yaxis] = "y$spidx" base_d[:name] = series[:label] # base_d[:legendgroup] = series[:label] - + x, y = plotly_data(series[:x]), plotly_data(series[:y]) for (i,rng) in enumerate(iter_segments(x,y)) length(rng) < 2 && continue diff --git a/src/backends/plotlyjs.jl b/src/backends/plotlyjs.jl index 3f2c6bad..6a8ed518 100644 --- a/src/backends/plotlyjs.jl +++ b/src/backends/plotlyjs.jl @@ -1,13 +1,11 @@ # https://github.com/spencerlyon2/PlotlyJS.jl -supported_args(::PlotlyJSBackend) = supported_args(PlotlyBackend()) -supported_types(::PlotlyJSBackend) = supported_types(PlotlyBackend()) -supported_styles(::PlotlyJSBackend) = supported_styles(PlotlyBackend()) -supported_markers(::PlotlyJSBackend) = supported_markers(PlotlyBackend()) -supported_scales(::PlotlyJSBackend) = supported_scales(PlotlyBackend()) -is_subplot_supported(::PlotlyJSBackend) = true -is_string_supported(::PlotlyJSBackend) = true +const _plotlyjs_attr = _plotly_attr +const _plotlyjs_seriestype = _plotly_seriestype +const _plotlyjs_style = _plotly_style +const _plotlyjs_marker = _plotly_marker +const _plotlyjs_scale = _plotly_scale # -------------------------------------------------------------------------------------- diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 99d166ef..a7571ef1 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -2,7 +2,7 @@ # https://github.com/stevengj/PyPlot.jl -supported_args(::PyPlotBackend) = merge_with_base_supported([ +const _pyplot_attr = merge_with_base_supported([ :annotations, :background_color_legend, :background_color_inside, :background_color_outside, :foreground_color_grid, :foreground_color_legend, :foreground_color_title, @@ -32,17 +32,17 @@ supported_args(::PyPlotBackend) = merge_with_base_supported([ :inset_subplots, :dpi, ]) -supported_types(::PyPlotBackend) = [ +const _pyplot_seriestype = [ :path, :steppre, :steppost, :shape, :scatter, :hexbin, #:histogram2d, :histogram, # :bar, :heatmap, :pie, :image, :contour, :contour3d, :path3d, :scatter3d, :surface, :wireframe ] -supported_styles(::PyPlotBackend) = [:auto, :solid, :dash, :dot, :dashdot] -supported_markers(::PyPlotBackend) = vcat(_allMarkers, Shape) -supported_scales(::PyPlotBackend) = [:identity, :ln, :log2, :log10] -is_subplot_supported(::PyPlotBackend) = true +const _pyplot_style = [:auto, :solid, :dash, :dot, :dashdot] +const _pyplot_marker = _allMarkers +const _pyplot_scale = [:identity, :ln, :log2, :log10] +is_marker_supported(::PyPlotBackend, shape::Shape) = true # -------------------------------------------------------------------------------------- @@ -406,10 +406,6 @@ function py_add_series(plt::Plot{PyPlotBackend}, series::Series) sp = series[:subplot] ax = sp.o - if !(st in supported_types(plt.backend)) - error("seriestype $(st) is unsupported in PyPlot. Choose from: $(supported_types(plt.backend))") - end - # PyPlot doesn't handle mismatched x/y fix_xy_lengths!(plt, series) @@ -734,7 +730,7 @@ function py_add_series(plt::Plot{PyPlotBackend}, series::Series) isfinite(clims[1]) && (extrakw[:vmin] = clims[1]) isfinite(clims[2]) && (extrakw[:vmax] = clims[2]) end - + handle = ax[:pcolormesh](x, y, z; label = series[:label], zorder = series[:series_plotindex], @@ -786,7 +782,7 @@ function py_add_series(plt::Plot{PyPlotBackend}, series::Series) # # expand extrema... get list of Wedge objects # for wedge in handle # path = wedge[:get_path]() - # for + # for lim = 1.1 expand_extrema!(sp, -lim, lim, -lim, lim) end @@ -942,7 +938,7 @@ function _before_layout_calcs(plt::Plot{PyPlotBackend}) fig[:set_size_inches](w/dpi, h/dpi, forward = true) fig[:set_facecolor](py_color(plt[:background_color_outside])) fig[:set_dpi](dpi) - + # resize the window PyPlot.plt[:get_current_fig_manager]()[:resize](w, h) diff --git a/src/backends/unicodeplots.jl b/src/backends/unicodeplots.jl index 5001cecf..5e9edd2a 100644 --- a/src/backends/unicodeplots.jl +++ b/src/backends/unicodeplots.jl @@ -1,7 +1,7 @@ # https://github.com/Evizero/UnicodePlots.jl -supported_args(::UnicodePlotsBackend) = merge_with_base_supported([ +const _unicodeplots_attr = merge_with_base_supported([ :label, :legend, :seriescolor, @@ -12,18 +12,17 @@ supported_args(::UnicodePlotsBackend) = merge_with_base_supported([ :title, :guide, :lims, ]) -supported_types(::UnicodePlotsBackend) = [ +const _unicodeplots_seriestype = [ :path, :scatter, :histogram2d ] -supported_styles(::UnicodePlotsBackend) = [:auto, :solid] -supported_markers(::UnicodePlotsBackend) = [:none, :auto, :circle] -supported_scales(::UnicodePlotsBackend) = [:identity] -is_subplot_supported(::UnicodePlotsBackend) = true +const _unicodeplots_style = [:auto, :solid] +const _unicodeplots_marker = [:none, :auto, :circle] +const _unicodeplots_scale = [:identity] # don't warn on unsupported... there's just too many warnings!! -warnOnUnsupported_args(pkg::UnicodePlotsBackend, d::KW) = nothing +warnOnUnsupported_args(::UnicodePlotsBackend, d::KW) = nothing # -------------------------------------------------------------------------------------- @@ -160,4 +159,3 @@ function _display(plt::Plot{UnicodePlotsBackend}) map(show, plt.o) nothing end - diff --git a/src/backends/bokeh.jl b/src/deprecated/backends/bokeh.jl similarity index 98% rename from src/backends/bokeh.jl rename to src/deprecated/backends/bokeh.jl index 5ba50bd4..4963d206 100644 --- a/src/backends/bokeh.jl +++ b/src/deprecated/backends/bokeh.jl @@ -2,7 +2,7 @@ # https://github.com/bokeh/Bokeh.jl -supported_args(::BokehBackend) = merge_with_base_supported([ +supported_attrs(::BokehBackend) = merge_with_base_supported([ # :annotations, # :axis, # :background_color, diff --git a/src/backends/gadfly.jl b/src/deprecated/backends/gadfly.jl similarity index 99% rename from src/backends/gadfly.jl rename to src/deprecated/backends/gadfly.jl index 29710fa8..bb501db2 100644 --- a/src/backends/gadfly.jl +++ b/src/deprecated/backends/gadfly.jl @@ -2,7 +2,7 @@ # https://github.com/dcjones/Gadfly.jl -supported_args(::GadflyBackend) = merge_with_base_supported([ +supported_attrs(::GadflyBackend) = merge_with_base_supported([ :annotations, :background_color, :foreground_color, :color_palette, :group, :label, :seriestype, diff --git a/src/backends/gadfly_shapes.jl b/src/deprecated/backends/gadfly_shapes.jl similarity index 100% rename from src/backends/gadfly_shapes.jl rename to src/deprecated/backends/gadfly_shapes.jl diff --git a/src/backends/immerse.jl b/src/deprecated/backends/immerse.jl similarity index 98% rename from src/backends/immerse.jl rename to src/deprecated/backends/immerse.jl index 2a00111e..b8679cf3 100644 --- a/src/backends/immerse.jl +++ b/src/deprecated/backends/immerse.jl @@ -1,7 +1,7 @@ # https://github.com/JuliaGraphics/Immerse.jl -supported_args(::ImmerseBackend) = supported_args(GadflyBackend()) +supported_attrs(::ImmerseBackend) = supported_attrs(GadflyBackend()) supported_types(::ImmerseBackend) = supported_types(GadflyBackend()) supported_styles(::ImmerseBackend) = supported_styles(GadflyBackend()) supported_markers(::ImmerseBackend) = supported_markers(GadflyBackend()) diff --git a/src/backends/qwt.jl b/src/deprecated/backends/qwt.jl similarity index 99% rename from src/backends/qwt.jl rename to src/deprecated/backends/qwt.jl index 77fa0a11..2173c599 100644 --- a/src/backends/qwt.jl +++ b/src/deprecated/backends/qwt.jl @@ -2,7 +2,7 @@ # https://github.com/tbreloff/Qwt.jl -supported_args(::QwtBackend) = merge_with_base_supported([ +supported_attrs(::QwtBackend) = merge_with_base_supported([ :annotations, :linecolor, :fillrange, diff --git a/src/backends/winston.jl b/src/deprecated/backends/winston.jl similarity index 99% rename from src/backends/winston.jl rename to src/deprecated/backends/winston.jl index 248e3755..8e7b97c7 100644 --- a/src/backends/winston.jl +++ b/src/deprecated/backends/winston.jl @@ -3,7 +3,7 @@ # credit goes to https://github.com/jverzani for contributing to the first draft of this backend implementation -supported_args(::WinstonBackend) = merge_with_base_supported([ +supported_attrs(::WinstonBackend) = merge_with_base_supported([ :annotations, :linecolor, :fillrange, diff --git a/src/examples.jl b/src/examples.jl index b0416ad4..cb1fef93 100644 --- a/src/examples.jl +++ b/src/examples.jl @@ -61,7 +61,7 @@ PlotExample("Global", # "Use the `axis` arguments.", # [ # :(plot(Vector[randn(100), randn(100)*100], axis = [:l :r], ylabel="LEFT", yrightlabel="RIGHT", xlabel="X", title="TITLE")) -# ]), +# ]), PlotExample("Images", "Plot an image. y-axis is set to flipped", @@ -115,7 +115,7 @@ PlotExample("Line types", PlotExample("Line styles", "", [:(begin - styles = filter(s -> s in supported_styles(), [:solid, :dash, :dot, :dashdot, :dashdotdot])' + styles = filter(s -> s in Plots.supported_styles(), [:solid, :dash, :dot, :dashdot, :dashdotdot])' n = length(styles) y = cumsum(randn(20,n),1) plot(y, line = (5, styles), label = map(string,styles)) @@ -125,7 +125,7 @@ PlotExample("Line styles", PlotExample("Marker types", "", [:(begin - markers = filter(m -> m in supported_markers(), Plots._shape_keys)' + markers = filter(m -> m in Plots.supported_markers(), Plots._shape_keys)' n = length(markers) x = linspace(0,10,n+2)[2:end-1] y = repmat(reverse(x)', n, 1) diff --git a/src/pipeline.jl b/src/pipeline.jl index 817cbb9e..23b273b4 100644 --- a/src/pipeline.jl +++ b/src/pipeline.jl @@ -378,7 +378,7 @@ function _process_seriesrecipe(plt::Plot, d::KW) end # if it's natively supported, finalize processing and pass along to the backend, otherwise recurse - if st in supported_types() + if is_seriestype_supported(st) sp = _prepare_subplot(plt, d) _prepare_annotations(sp, d) _expand_subplot_extrema(sp, d, st) diff --git a/src/precompile.jl b/src/precompile.jl index c2dd87a2..22c11ca0 100644 --- a/src/precompile.jl +++ b/src/precompile.jl @@ -1,468 +1,3 @@ function _precompile_() ccall(:jl_generating_output, Cint, ()) == 1 || return nothing - precompile(Plots.py_add_series, (Plots.Plot{Plots.PyPlotBackend}, Plots.Series,)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Float64, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Base.StepRange{Int64, Int64},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Function,)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Plots.OHLC, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Float64, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Base.LinSpace{Float64},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, DataFrames.DataFrame,)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Int64, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Union{String, ASCIIString}, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Function, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{ASCIIString, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Base.FloatRange{Float64},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots._plot!, (Plots.Plot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any}, Array{Float64, 1},)) - precompile(Plots._plot!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Array{Float64, 2},)) - precompile(Plots._add_defaults!, (Base.Dict{Symbol, Any}, Plots.Plot{Plots.UnicodePlotsBackend}, Plots.Subplot{Plots.UnicodePlotsBackend}, Int64,)) - precompile(Plots._before_layout_calcs, (Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots._apply_series_recipe, (Plots.Plot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots._add_defaults!, (Base.Dict{Symbol, Any}, Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend}, Int64,)) - precompile(Plots._apply_series_recipe, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots.setup_ijulia, ()) - precompile(Plots.call, (Type{Plots.Plot{Plots.UnicodePlotsBackend}}, Plots.UnicodePlotsBackend, Int64, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Array{Plots.Series, 1}, Void, Array{Plots.Subplot, 1}, Base.Dict{Any, Plots.Subplot}, Plots.EmptyLayout, Array{Plots.Subplot, 1}, Bool,)) - precompile(Plots.expand_extrema!, (Plots.Subplot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots.create_grid_vcat, (Expr,)) - precompile(Plots.expand_extrema!, (Plots.Subplot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots.update_child_bboxes!, (Plots.GridLayout, Array{Measures.Length{:mm, Float64}, 1},)) - precompile(Plots.preprocessArgs!, (Base.Dict{Symbol, Any},)) - precompile(Plots.call, (Type{Plots.Plot{Plots.PyPlotBackend}}, Plots.PyPlotBackend, Int64, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Array{Plots.Series, 1}, Void, Array{Plots.Subplot, 1}, Base.Dict{Any, Plots.Subplot}, Plots.EmptyLayout, Array{Plots.Subplot, 1}, Bool,)) - precompile(Plots.fix_xy_lengths!, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots._update_min_padding!, (Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.warnOnUnsupported_args, (Plots.PyPlotBackend, Base.Dict{Symbol, Any},)) - precompile(Plots.build_layout, (Plots.GridLayout, Int64,)) - precompile(Plots.build_layout, (Plots.GridLayout, Int64, Array{Plots.Plot, 1},)) - precompile(Plots.warnOnUnsupported, (Plots.UnicodePlotsBackend, Base.Dict{Symbol, Any},)) - precompile(Plots.link_axes!, (Plots.GridLayout, Symbol,)) - precompile(Plots.warnOnUnsupported, (Plots.PyPlotBackend, Base.Dict{Symbol, Any},)) - precompile(Plots._update_plot_args, (Plots.Plot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots.font, (Int64,)) - precompile(Plots.recompute_lengths, (Array{Measures.Measure, 1},)) - precompile(Plots._update_plot_object, (Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.font, (Symbol,)) - precompile(Plots.create_grid, (Expr,)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Void, Int64,)) - precompile(Plots.pickDefaultBackend, ()) - precompile(Plots.default_should_widen, (Plots.Axis,)) - precompile(Plots.setup_atom, ()) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Symbol, Int64,)) - precompile(Plots.my_hist_2d, (Array{Any, 1}, Array{Float64, 1}, Array{Float64, 1}, Int64,)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, ASCIIString, Int64,)) - precompile(Plots.create_grid_curly, (Expr,)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Bool, Int64,)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Int64, Int64,)) - precompile(Plots.my_hist, (Array{Any, 1}, Array{Float64, 1}, Int64,)) - precompile(Plots.getpctrange, (Int64,)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{Symbol, 1},)) - precompile(Plots.default, (Symbol,)) - precompile(Plots.process_axis_arg!, (Base.Dict{Symbol, Any}, Symbol, Symbol,)) - precompile(Plots.pie_labels, (Plots.Subplot{Plots.PyPlotBackend}, Plots.Series,)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Measures.Length{:mm, Float64}, Int64,)) - precompile(Plots.py_path, (Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots._update_min_padding!, (Plots.GridLayout,)) - precompile(Plots.warnOnUnsupported_scales, (Plots.UnicodePlotsBackend, Base.Dict{Symbol, Any},)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Plots.Font, Int64,)) - precompile(Plots.process_axis_arg!, (Base.Dict{Symbol, Any}, Tuple{Int64, Int64}, Symbol,)) - precompile(Plots.slice_arg!, (Array{Any, 1}, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Symbol, Array{Any, 1}, Int64,)) - precompile(Plots.default, (Symbol, Tuple{Int64, Int64},)) - precompile(Plots.warnOnUnsupported_scales, (Plots.PyPlotBackend, Base.Dict{Symbol, Any},)) - precompile(Plots.axis_limits, (Plots.Axis, Bool,)) - precompile(Plots.default, (Symbol, Bool,)) - precompile(Plots.getColorZ, (Plots.ColorGradient, Float64,)) - precompile(Plots._update_plot_args, (Plots.Plot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any},)) - precompile(Plots.call, (Type{Plots.Surface}, Function, Base.FloatRange{Float64}, Base.FloatRange{Float64},)) - precompile(Plots.font, (Symbol,)) - precompile(Plots.process_axis_arg!, (Base.Dict{Symbol, Any}, Base.StepRange{Int64, Int64}, Symbol,)) - precompile(Plots.call, (Array{Any, 1}, Type{Plots.Subplot}, Plots.UnicodePlotsBackend,)) - precompile(Plots.extractGroupArgs, (Array{ASCIIString, 1}, Array{Float64, 1},)) - precompile(Plots._update_subplot_args, (Array{Any, 1}, Plots.Plot{Plots.UnicodePlotsBackend}, Plots.Subplot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.call, (Array{Any, 1}, Type{Plots.Subplot}, Plots.PyPlotBackend,)) - precompile(Plots._update_subplot_args, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.extractGroupArgs, (Array{Union{String, ASCIIString}, 1},)) - precompile(Plots.bbox_to_pcts, (Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}}, Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}, Bool,)) - precompile(Plots.plot, (Array{Any, 1}, Array{Float64, 1},)) - precompile(Plots.py_marker, (Plots.Shape,)) - precompile(Plots.getindex, (Plots.Subplot{Plots.UnicodePlotsBackend}, Symbol,)) - precompile(Plots.getindex, (Plots.Subplot{Plots.PyPlotBackend}, Symbol,)) - precompile(Plots.discrete_value!, (Plots.Axis, Array{Union{String, ASCIIString}, 1},)) - precompile(Plots.prepare_output, (Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.update_inset_bboxes!, (Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.add_layout_pct!, (Base.Dict{Symbol, Any}, Expr, Int64, Int64,)) - precompile(Plots.process_axis_arg!, (Base.Dict{Symbol, Any}, ASCIIString, Symbol,)) - precompile(Plots.call, (Type{Plots.Shape}, Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots.plot, (Array{Any, 1}, Base.LinSpace{Float64}, Array{Float64, 2},)) - precompile(Plots.call, (Array{Any, 1}, Type{Plots.EmptyLayout}, Plots.RootLayout,)) - precompile(Plots.plot, (Array{Any, 1}, Function, Function,)) - precompile(Plots.should_add_to_legend, (Plots.Series,)) - precompile(Plots.plot, (Array{Any, 1}, DataFrames.DataFrame, Symbol,)) - precompile(Plots.plot, (Array{Any, 1}, Array{Plots.OHLC, 1},)) - precompile(Plots.convertToAnyVector, (Array{Float64, 2}, Base.Dict{Symbol, Any},)) - precompile(Plots.plot, (Array{Any, 1}, Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots.plot, (Array{Any, 1}, Array{ASCIIString, 1}, Array{Float64, 1},)) - precompile(Plots.plot!, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend}, Array{Float64, 1},)) - precompile(Plots.processLineArg, (Base.Dict{Symbol, Any}, Symbol,)) - precompile(Plots.aliasesAndAutopick, (Base.Dict{Symbol, Any}, Symbol, Base.Dict{Symbol, Any}, Array{Symbol, 1}, Int64,)) - precompile(Plots.plot!, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend}, Array{Int64, 1},)) - precompile(Plots.pie, (Array{Any, 1}, Array{ASCIIString, 1},)) - precompile(Plots.aliasesAndAutopick, (Base.Dict{Symbol, Any}, Symbol, Base.Dict{Symbol, Any}, Array{Any, 1}, Int64,)) - precompile(Plots.merge_with_base_supported, (Array{Symbol, 1},)) - precompile(Plots.histogram2d, (Array{Any, 1}, Array{Float64, 1},)) - precompile(Plots.plot, (Array{Any, 1}, Base.StepRange{Int64, Int64}, Array{Float64, 2},)) - precompile(Plots.plot, (Array{Any, 1}, Base.LinSpace{Float64}, Array{Float64, 1},)) - precompile(Plots.plot, (Array{Any, 1}, Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots.font, ()) - precompile(Plots.plot, (Array{Any, 1}, Base.FloatRange{Float64}, Array{Float64, 1},)) - precompile(Plots.plot, (Array{Any, 1}, Base.FloatRange{Float64}, Base.FloatRange{Float64},)) - precompile(Plots.plot, (Array{Any, 1}, Array{Function, 1}, Array{Float64, 1},)) - precompile(Plots.scatter, (Array{Any, 1}, Base.LinSpace{Float64},)) - precompile(Plots.plot!, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend}, Base.LinSpace{Float64},)) - precompile(Plots.plot!, (Array{Any, 1}, Base.LinSpace{Float64}, Array{Float64, 1},)) - precompile(Plots.get_zvalues, (Int64,)) - precompile(Plots.plot, (Array{Any, 1}, Array{Union{String, ASCIIString}, 1}, Array{Union{String, ASCIIString}, 1},)) - precompile(Plots.histogram, (Array{Any, 1}, Array{Float64, 1},)) - precompile(Plots.hline!, (Array{Any, 1}, Array{Float64, 2},)) - precompile(Plots.layout_args, (Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.heatmap, (Array{Any, 1}, Array{Union{String, ASCIIString}, 1},)) - precompile(Plots._replace_linewidth, (Base.Dict{Symbol, Any},)) - precompile(Plots.plot!, (Array{Any, 1}, Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots.plot!, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend}, Array{Float64, 2},)) - precompile(Plots.py_markercolor, (Base.Dict{Symbol, Any},)) - precompile(Plots.unzip, (Array{Tuple{Float64, Float64}, 1},)) - precompile(Plots.link_axes!, (Array{Plots.AbstractLayout, 2}, Symbol,)) - precompile(Plots.plot!, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend}, Array{Float64, 1},)) - precompile(Plots.contour, (Array{Any, 1}, Base.FloatRange{Float64},)) - precompile(Plots.scatter, (Array{Any, 1}, DataFrames.DataFrame,)) - precompile(Plots.scatter!, (Array{Any, 1}, Base.LinSpace{Float64},)) - precompile(Plots.scatter!, (Array{Any, 1}, Array{Float64, 1},)) - precompile(Plots.getxy, (Plots.Plot{Plots.PyPlotBackend}, Int64,)) - precompile(Plots.plot, (Array{Any, 1}, Array{Float64, 2},)) - precompile(Plots.get_xy, (Array{Plots.OHLC, 1}, Base.UnitRange{Int64},)) - precompile(Plots.convertToAnyVector, (Array{Function, 1}, Base.Dict{Symbol, Any},)) - precompile(Plots.py_add_annotations, (Plots.Subplot{Plots.PyPlotBackend}, Int64, Float64, Plots.PlotText,)) - precompile(Plots.plot!, (Array{Any, 1}, Array{Float64, 1},)) - precompile(Plots.get_color_palette, (Symbol, ColorTypes.RGB{Float64}, Int64,)) - precompile(Plots.py_add_annotations, (Plots.Subplot{Plots.PyPlotBackend}, Float64, Float64, Plots.PlotText,)) - precompile(Plots.py_colormap, (Plots.ColorGradient, Float64,)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, Plots.Stroke,)) - precompile(Plots.call, (Type{Plots.ColorVector}, Array{Symbol, 1},)) - precompile(Plots.py_colormap, (Plots.ColorGradient, Void,)) - precompile(Plots.py_fillcolor, (Base.Dict{Symbol, Any},)) - precompile(Plots.processLineArg, (Base.Dict{Symbol, Any}, Float64,)) - precompile(Plots.plot!, (Array{Any, 1}, Array{Float64, 2},)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, Symbol,)) - precompile(Plots.call, (Type{Plots.Plot},)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{ColorTypes.RGBA{Float64}, 1},)) - precompile(Plots.plot!, (Array{Any, 1}, Array{Int64, 1},)) - precompile(Plots.getExtension, (String,)) - precompile(Plots.call, (Array{Any, 1}, Type{Plots.EmptyLayout},)) - precompile(Plots.update!, (Array{Any, 1}, Plots.Axis,)) - precompile(Plots.frame, (Plots.Animation, Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.link_axes!, (Array{Plots.AbstractLayout, 1}, Symbol,)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{ColorTypes.RGB{Float64}, 1},)) - precompile(Plots.fakedata, (Int64,)) - precompile(Plots.plot!, (Array{Any, 1}, Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.py_compute_axis_minval, (Plots.Axis,)) - precompile(Plots.processLineArg, (Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.command_idx, (Array{Base.Dict{Symbol, Any}, 1}, Base.Dict{Symbol, Any},)) - precompile(Plots.getindex, (Plots.Axis, Symbol,)) - precompile(Plots.__init__, ()) - precompile(Plots.isvertical, (Base.Dict{Symbol, Any},)) - precompile(Plots.getExtension, (ASCIIString,)) - precompile(Plots.py_marker, (Symbol,)) - precompile(Plots.py_init_subplot, (Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, ColorTypes.RGBA{Float64},)) - precompile(Plots.bucket_index, (Float64, Base.LinSpace{Float64},)) - precompile(Plots.default, (Array{Any, 1},)) - precompile(Plots.filter_data!, (Base.Dict{Symbol, Any}, Array{Int64, 1},)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{Symbol, 1}, Base.LinSpace{Float64},)) - precompile(Plots.slice_arg, (Array{Symbol, 2}, Int64,)) - precompile(Plots.getindex, (Plots.Plot{Plots.UnicodePlotsBackend}, Symbol,)) - precompile(Plots.plot!, (Array{Any, 1},)) - precompile(Plots.push!, (Plots.Plot{Plots.PyPlotBackend}, Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, Float64,)) - precompile(Plots.expand_extrema!, (Plots.Axis, Base.FloatRange{Float64},)) - precompile(Plots.getindex, (Plots.Plot{Plots.PyPlotBackend}, Symbol,)) - precompile(Plots.handle_dfs, (DataFrames.DataFrame, Base.Dict{Symbol, Any}, ASCIIString, Symbol,)) - precompile(Plots.filter_data, (Base.UnitRange{Int64}, Array{Int64, 1},)) - precompile(Plots.call, (Type{Plots.ColorWrapper}, ColorTypes.RGBA{Float64},)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, Array{Symbol, 2},)) - precompile(Plots.processLineArg, (Base.Dict{Symbol, Any}, Array{Symbol, 2},)) - precompile(Plots.color_or_nothing!, (Base.Dict{Symbol, Any}, Symbol,)) - precompile(Plots.processMarkerArg, (Base.Dict{Symbol, Any}, Plots.Shape,)) - precompile(Plots.py_fillcolormap, (Base.Dict{Symbol, Any},)) - precompile(Plots.transpose_z, (Base.Dict{Symbol, Any}, Array{Float64, 2}, Bool,)) - precompile(Plots.py_linecolor, (Base.Dict{Symbol, Any},)) - precompile(Plots.call, (Type{Plots.OHLC}, Float64, Float64, Float64, Float64,)) - precompile(Plots.setxy!, (Plots.Plot{Plots.PyPlotBackend}, Tuple{Array{Float64, 1}, Array{Float64, 1}}, Int64,)) - precompile(Plots.push!, (Plots.Segments, Float64, Float64, Float64, Float64,)) - precompile(Plots.handle_group, (DataFrames.DataFrame, Base.Dict{Symbol, Any},)) - precompile(Plots.lightness_from_background, (ColorTypes.RGB{Float64},)) - precompile(Plots.expand_extrema!, (Plots.Axis, Base.LinSpace{Float64},)) - precompile(Plots.py_bbox, (Array{Any, 1},)) - precompile(Plots.py_markerstrokecolor, (Base.Dict{Symbol, Any},)) - precompile(Plots.arrow, ()) - precompile(Plots.convert, (Type{Array{Float64, 1}}, Base.StepRange{Int64, Int64},)) - precompile(Plots.expand_extrema!, (Plots.Axis, Array{Float64, 1},)) - precompile(Plots.convertLegendValue, (Symbol,)) - precompile(Plots.slice_arg, (Array{Measures.Length{:mm, Float64}, 2}, Int64,)) - precompile(Plots.calc_num_subplots, (Plots.GridLayout,)) - precompile(Plots.processFillArg, (Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.slice_arg, (Array{Plots.ColorWrapper, 2}, Int64,)) - precompile(Plots.slice_arg, (Array{ASCIIString, 2}, Int64,)) - precompile(Plots.filter_data, (Array{Float64, 1}, Array{Int64, 1},)) - precompile(Plots.py_linecolormap, (Base.Dict{Symbol, Any},)) - precompile(Plots.discrete_value!, (Plots.Axis, ASCIIString,)) - precompile(Plots.allShapes, (ColorTypes.RGBA{Float64},)) - precompile(Plots.expand_extrema!, (Plots.Axis, Array{Int64, 1},)) - precompile(Plots.py_color_fix, (Tuple{Float64, Float64, Float64, Float64}, Base.LinSpace{Float64},)) - precompile(Plots.discrete_value!, (Plots.Axis, Symbol,)) - precompile(Plots.push!, (Plots.Segments, Float64, Int64, Int64, Float64,)) - precompile(Plots.expand_extrema!, (Plots.Axis, Plots.Surface{Array{Float64, 2}},)) - precompile(Plots.heatmap_edges, (Array{Float64, 1},)) - precompile(Plots.expand_extrema!, (Plots.Axis, Base.StepRange{Int64, Int64},)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Plots.Shape, Symbol,)) - precompile(Plots.py_color, (Plots.ColorWrapper, Float64,)) - precompile(Plots.call, (Type{Plots.GridLayout}, Int64, Int64,)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, ColorTypes.RGBA{Float64}, Symbol,)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Bool, Symbol,)) - precompile(Plots.hvline_limits, (Plots.Axis,)) - precompile(Plots.current, ()) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Float64, Symbol,)) - precompile(Plots.compute_gridsize, (Int64, Int64, Int64,)) - precompile(Plots.py_color, (ColorTypes.RGB{Float64}, Void,)) - precompile(Plots.interpolate_rgb, (ColorTypes.RGBA{Float64}, ColorTypes.RGBA{Float64}, Float64,)) - precompile(Plots.expand_extrema!, (Plots.Axis, Base.UnitRange{Int64},)) - precompile(Plots.allShapes, (Float64,)) - precompile(Plots.warn_on_deprecated_backend, (Symbol,)) - precompile(Plots.py_color_fix, (Tuple{Float64, Float64, Float64, Float64}, Array{Int64, 1},)) - precompile(Plots.setindex!, (Plots.GridLayout, Plots.EmptyLayout, Int64, Int64,)) - precompile(Plots.expand_extrema!, (Plots.Axis, Tuple{Int64, Int64},)) - precompile(Plots.allShapes, (Int64,)) - precompile(Plots.py_markercolormap, (Base.Dict{Symbol, Any},)) - precompile(Plots.interpolate_rgb, (ColorTypes.RGB{Float64}, ColorTypes.RGB{Float64}, Float64,)) - precompile(Plots.get_ticks, (Plots.Axis,)) - precompile(Plots.backend, ()) - precompile(Plots.get_xy, (Plots.OHLC{Float64}, Int64, Float64,)) - precompile(Plots.allShapes, (Plots.Stroke,)) - precompile(Plots.replaceAliases!, (Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any},)) - precompile(Plots._create_backend_figure, (Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.png, (Plots.Plot{Plots.PyPlotBackend}, String,)) - precompile(Plots.processFillArg, (Base.Dict{Symbol, Any}, Symbol,)) - precompile(Plots.allShapes, (Plots.Shape,)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Plots.Stroke, Symbol,)) - precompile(Plots.py_color_fix, (Tuple{Float64, Float64, Float64, Float64}, Array{Float64, 1},)) - precompile(Plots.plot, (Array{Float64, 1},)) - precompile(Plots.rowsize, (Expr,)) - precompile(Plots.get_axis, (Plots.Subplot{Plots.PyPlotBackend}, Symbol,)) - precompile(Plots.png, (Plots.Plot{Plots.PyPlotBackend}, ASCIIString,)) - precompile(Plots.expand_extrema!, (Plots.Axis, Tuple{Float64, Float64},)) - precompile(Plots._markershape_supported, (Plots.PyPlotBackend, Plots.Shape,)) - precompile(Plots.processFillArg, (Base.Dict{Symbol, Any}, Bool,)) - precompile(Plots.supported_types, (Plots.PyPlotBackend,)) - precompile(Plots.get_axis, (Plots.Subplot{Plots.UnicodePlotsBackend}, Symbol,)) - precompile(Plots.setindex!, (Plots.GridLayout, Plots.GridLayout, Int64, Int64,)) - precompile(Plots.plot, ()) - precompile(Plots.py_color_fix, (Tuple{Float64, Float64, Float64, Float64}, Base.FloatRange{Float64},)) - precompile(Plots._markershape_supported, (Plots.PyPlotBackend, Symbol,)) - precompile(Plots.ok, (Float64, Float64, Int64,)) - precompile(Plots.allShapes, (Symbol,)) - precompile(Plots._initialize_backend, (Plots.PyPlotBackend,)) - precompile(Plots.plot, (Plots.Plot{Plots.PyPlotBackend}, Plots.Plot{Plots.PyPlotBackend},)) - precompile(Plots.bar, (Array{Float64, 1},)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{ColorTypes.RGBA{Float64}, 1}, Base.LinSpace{Float64},)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Int64, Symbol,)) - precompile(Plots.nanappend!, (Array{Float64, 1}, Array{Float64, 1},)) - precompile(Plots.autopick, (Array{ColorTypes.RGBA, 1}, Int64,)) - precompile(Plots.compute_xyz, (Void, Array{Int64, 1}, Void,)) - precompile(Plots._add_markershape, (Base.Dict{Symbol, Any},)) - precompile(Plots._backend_instance, (Symbol,)) - precompile(Plots.py_color, (ColorTypes.RGBA{Float64}, Float64,)) - precompile(Plots.update_child_bboxes!, (Plots.GridLayout,)) - precompile(Plots._replace_markershape, (Symbol,)) - precompile(Plots.has_black_border_for_default, (Symbol,)) - precompile(Plots._filter_input_data!, (Base.Dict{Symbol, Any},)) - precompile(Plots.compute_xyz, (Array{Float64, 1}, Array{Float64, 1}, Base.UnitRange{Int64},)) - precompile(Plots.text, (ASCIIString, Int64, Symbol,)) - precompile(Plots.allShapes, (Array{Symbol, 2},)) - precompile(Plots.py_color_fix, (Tuple{Float64, Float64, Float64, Float64}, Base.UnitRange{Int64},)) - precompile(Plots.replaceAlias!, (Base.Dict{Symbol, Any}, Symbol, Base.Dict{Symbol, Any},)) - precompile(Plots.compute_xyz, (Array{ASCIIString, 1}, Array{Float64, 1}, Void,)) - precompile(Plots.layout_args, (Int64,)) - precompile(Plots.text, (ASCIIString, Symbol, Int64,)) - precompile(Plots.compute_xyz, (Base.FloatRange{Float64}, Base.FloatRange{Float64}, Plots.Surface{Array{Float64, 2}},)) - precompile(Plots.all3D, (Base.Dict{Symbol, Any},)) - precompile(Plots.cycle, (Array{Plots.Subplot, 1}, Int64,)) - precompile(Plots.compute_xyz, (Base.StepRange{Int64, Int64}, Array{Float64, 1}, Void,)) - precompile(Plots.plotarea!, (Plots.Subplot{Plots.PyPlotBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.like_surface, (Symbol,)) - precompile(Plots.build_layout, (Base.Dict{Symbol, Any},)) - precompile(Plots.compute_xyz, (Array{Union{String, ASCIIString}, 1}, Array{Union{String, ASCIIString}, 1}, Plots.Surface{Array{Float64, 2}},)) - precompile(Plots.py_linestyle, (Symbol, Symbol,)) - precompile(Plots.plot!, (Array{Float64, 2},)) - precompile(Plots.plot!, (Plots.Plot{Plots.PyPlotBackend}, Array{Float64, 2},)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{ColorTypes.RGB{Float64}, 1}, Base.LinSpace{Float64},)) - precompile(Plots.py_color, (ColorTypes.RGBA{Float64}, Void,)) - precompile(Plots.yaxis!, (ASCIIString, Symbol,)) - precompile(Plots.compute_xyz, (Base.LinSpace{Float64}, Array{Float64, 1}, Void,)) - precompile(Plots.isijulia, ()) - precompile(Plots.addExtension, (String, ASCIIString,)) - precompile(Plots.call, (Type{Plots.ColorGradient}, Array{ColorTypes.RGBA{Float64}, 1}, Array{Float64, 1},)) - precompile(Plots.expand_extrema!, (Plots.Subplot{Plots.PyPlotBackend}, Float64, Float64, Float64, Float64,)) - precompile(Plots.plotarea!, (Plots.GridLayout, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.layout_args, (Base.Dict{Symbol, Any},)) - precompile(Plots.compute_xyz, (Base.FloatRange{Float64}, Array{Float64, 1}, Void,)) - precompile(Plots.addExtension, (ASCIIString, ASCIIString,)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Symbol, Symbol,)) - precompile(Plots._initialize_backend, (Plots.PlotlyBackend,)) - precompile(Plots.push!, (Plots.Plot{Plots.PyPlotBackend}, Int64, Float64, Float64,)) - precompile(Plots.bbox!, (Plots.Subplot{Plots.PyPlotBackend}, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.vline!, (Array{Int64, 1},)) - precompile(Plots.supported_markers, (Plots.PyPlotBackend,)) - precompile(Plots.bbox!, (Plots.GridLayout, Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.stroke, (Int64,)) - precompile(Plots.compute_xyz, (Array{Float64, 1}, Array{Float64, 1}, Void,)) - precompile(Plots.right, (Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.extractGroupArgs, (Symbol, DataFrames.DataFrame, Symbol,)) - precompile(Plots.generate_colorgradient, (ColorTypes.RGB{Float64},)) - precompile(Plots.expand_extrema!, (Plots.Extrema, Bool,)) - precompile(Plots.py_colormap, (Plots.ColorWrapper, Void,)) - precompile(Plots.expand_extrema!, (Plots.Extrema, Float64,)) - precompile(Plots.contour, (Base.FloatRange{Float64},)) - precompile(Plots.bottom, (Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.text, (ASCIIString, Symbol,)) - precompile(Plots.create_grid, (Symbol,)) - precompile(Plots.expand_extrema!, (Plots.Axis, Bool,)) - precompile(Plots.handleColors!, (Base.Dict{Symbol, Any}, Array{Symbol, 2}, Symbol,)) - precompile(Plots.convertToAnyVector, (Void, Base.Dict{Symbol, Any},)) - precompile(Plots.py_dpi_scale, (Plots.Plot{Plots.PyPlotBackend}, Int64,)) - precompile(Plots.png, (ASCIIString,)) - precompile(Plots.supported_scales, (Plots.PyPlotBackend,)) - precompile(Plots.convertColor, (ColorTypes.RGBA{Float64}, Float64,)) - precompile(Plots.extendSeriesData, (Array{Float64, 1}, Float64,)) - precompile(Plots.compute_xyz, (Void, Array{Float64, 1}, Void,)) - precompile(Plots.py_color, (Symbol,)) - precompile(Plots.expand_extrema!, (Plots.Extrema, Int64,)) - precompile(Plots.supported_styles, (Plots.PyPlotBackend,)) - precompile(Plots._initialize_backend, (Plots.UnicodePlotsBackend,)) - precompile(Plots._initialize_backend, (Plots.GRBackend,)) - precompile(Plots.is3d, (Symbol,)) - precompile(Plots.supported_types, (Plots.UnicodePlotsBackend,)) - precompile(Plots.compute_xyz, (Array{Float64, 1}, Function, Void,)) - precompile(Plots.py_color, (Symbol, Void,)) - precompile(Plots.trueOrAllTrue, (Function, Array{Symbol, 2},)) - precompile(Plots.typemin, (Measures.Length{:mm, Float64},)) - precompile(Plots.expand_extrema!, (Plots.Axis, Float64,)) - precompile(Plots.get_subplot_index, (Plots.Plot{Plots.UnicodePlotsBackend}, Plots.Subplot{Plots.UnicodePlotsBackend},)) - precompile(Plots.leftpad, (Plots.GridLayout,)) - precompile(Plots._update_subplot_args, (Plots.Plot{Plots.UnicodePlotsBackend}, Plots.Subplot{Plots.UnicodePlotsBackend}, Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots.centers, (Base.LinSpace{Float64},)) - precompile(Plots.expand_extrema!, (Plots.Axis, Int64,)) - precompile(Plots.text, (ASCIIString,)) - precompile(Plots.convertColor, (ColorTypes.RGB{Float64},)) - precompile(Plots.py_color, (Plots.ColorWrapper, Void,)) - precompile(Plots.py_color, (Plots.ColorWrapper,)) - precompile(Plots.trueOrAllTrue, (Function, Int64,)) - precompile(Plots.convertColor, (ColorTypes.RGBA{Float64},)) - precompile(Plots.extrema, (Plots.Axis,)) - precompile(Plots.top, (Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.convertColor, (Symbol,)) - precompile(Plots.size, (Plots.Surface{Array{Float64, 2}},)) - precompile(Plots.isdark, (ColorTypes.RGB{Float64},)) - precompile(Plots.rowsize, (Symbol,)) - precompile(Plots.series_list, (Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.convertToAnyVector, (Array{Float64, 1}, Base.Dict{Symbol, Any},)) - precompile(Plots.update!, (Plots.Axis,)) - precompile(Plots.push!, (Plots.Plot{Plots.PyPlotBackend}, Float64, Array{Float64, 1},)) - precompile(Plots.wraptuple, (Bool,)) - precompile(Plots.call, (Type{Plots.Shape}, Array{Tuple{Float64, Float64}, 1},)) - precompile(Plots.slice_arg, (Base.StepRange{Int64, Int64}, Int64,)) - precompile(Plots.sticks_fillfrom, (Void, Int64,)) - precompile(Plots.left, (Measures.BoundingBox{Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}, Tuple{Measures.Length{:mm, Float64}, Measures.Length{:mm, Float64}}},)) - precompile(Plots.gr, ()) - precompile(Plots.leftpad, (Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.supported_markers, ()) - precompile(Plots.colorscheme, (Symbol,)) - precompile(Plots.convertColor, (ColorTypes.RGB{Float64}, Void,)) - precompile(Plots.isscalar, (Int64,)) - precompile(Plots.wraptuple, (Int64,)) - precompile(Plots.call, (Type{Plots.Plot}, Plots.UnicodePlotsBackend, Int64, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Array{Plots.Series, 1}, Void, Array{Plots.Subplot, 1}, Base.Dict{Any, Plots.Subplot}, Plots.EmptyLayout, Array{Plots.Subplot, 1}, Bool,)) - precompile(Plots.supported_styles, ()) - precompile(Plots.frame, (Plots.Animation,)) - precompile(Plots.toppad, (Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.link_axes!, (Plots.Subplot{Plots.UnicodePlotsBackend}, Symbol,)) - precompile(Plots.convertLegendValue, (Bool,)) - precompile(Plots.convertColor, (ColorTypes.RGBA{Float64}, Void,)) - precompile(Plots.plotly, ()) - precompile(Plots.ispositive, (Measures.Length{:mm, Float64},)) - precompile(Plots.rightpad, (Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.call, (Type{Plots.GroupBy}, Array{ASCIIString, 1}, Array{Array{Int64, 1}, 1},)) - precompile(Plots.px2inch, (Int64,)) - precompile(Plots.slice_arg, (Tuple{Int64, Int64}, Int64,)) - precompile(Plots.call, (Type{Plots.UnicodePlotsBackend},)) - precompile(Plots.trueOrAllTrue, (Function, Symbol,)) - precompile(Plots.bottompad, (Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.annotate!, (Array{Tuple{Int64, Float64, Plots.PlotText}, 1},)) - precompile(Plots.get_subplot_index, (Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.call, (Type{Plots.Plot}, Plots.PyPlotBackend, Int64, Base.Dict{Symbol, Any}, Base.Dict{Symbol, Any}, Array{Plots.Series, 1}, Void, Array{Plots.Subplot, 1}, Base.Dict{Any, Plots.Subplot}, Plots.EmptyLayout, Array{Plots.Subplot, 1}, Bool,)) - precompile(Plots.title!, (ASCIIString,)) - precompile(Plots.slice_arg, (Bool, Int64,)) - precompile(Plots.wraptuple, (Float64,)) - precompile(Plots.bottompad, (Plots.GridLayout,)) - precompile(Plots.py_stepstyle, (Symbol,)) - precompile(Plots.link_axes!, (Plots.Subplot{Plots.PyPlotBackend}, Symbol,)) - precompile(Plots.call, (Type{Plots.GRBackend},)) - precompile(Plots.unicodeplots, ()) - precompile(Plots.rightpad, (Plots.GridLayout,)) - precompile(Plots.call, (Type{Plots.PlotlyBackend},)) - precompile(Plots.py_color, (ColorTypes.RGBA{Float64},)) - precompile(Plots.toppad, (Plots.GridLayout,)) - precompile(Plots.calc_edges, (Array{Float64, 1}, Int64,)) - precompile(Plots.colorscheme, (ColorTypes.RGBA{Float64},)) - precompile(Plots.slice_arg, (Int64, Int64,)) - precompile(Plots.pyplot, ()) - precompile(Plots._update_subplot_args, (Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend}, Base.Dict{Symbol, Any}, Int64,)) - precompile(Plots._series_added, (Plots.Plot{Plots.PyPlotBackend}, Plots.Series,)) - precompile(Plots.get_color_palette, (Array{ColorTypes.RGBA, 1}, ColorTypes.RGB{Float64}, Int64,)) - precompile(Plots._initialize_subplot, (Plots.Plot{Plots.UnicodePlotsBackend}, Plots.Subplot{Plots.UnicodePlotsBackend},)) - precompile(Plots.slice_arg, (Void, Int64,)) - precompile(Plots.cycle, (Int64, Int64,)) - precompile(Plots._initialize_subplot, (Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.call, (Type{Plots.PyPlotBackend},)) - precompile(Plots.update_child_bboxes!, (Plots.Subplot{Plots.PyPlotBackend}, Array{Measures.Length{:mm, Float64}, 1},)) - precompile(Plots.filter_data, (Void, Array{Int64, 1},)) - precompile(Plots.slice_arg, (Symbol, Int64,)) - precompile(Plots.slice_arg, (ASCIIString, Int64,)) - precompile(Plots.layout_args, (Plots.GridLayout,)) - precompile(Plots.wraptuple, (Tuple{},)) - precompile(Plots.calc_num_subplots, (Plots.EmptyLayout,)) - precompile(Plots.wraptuple, (Tuple{Symbol, Float64, Plots.Stroke},)) - precompile(Plots.wraptuple, (Tuple{ASCIIString, Tuple{Int64, Int64}, Base.StepRange{Int64, Int64}, Symbol},)) - precompile(Plots.wraptuple, (Tuple{Int64, Symbol, Float64, Array{Symbol, 2}},)) - precompile(Plots.wraptuple, (Tuple{Int64, Array{Symbol, 2}},)) - precompile(Plots.wraptuple, (Tuple{ASCIIString, Symbol},)) - precompile(Plots._replace_markershape, (Array{Symbol, 2},)) - precompile(Plots.wraptuple, (Tuple{Symbol, Int64},)) - precompile(Plots.wraptuple, (Tuple{Array{Symbol, 2}, Int64},)) - precompile(Plots.wraptuple, (Tuple{Int64, Symbol, Symbol},)) - precompile(Plots.wraptuple, (Tuple{Int64, Float64, Symbol, Plots.Stroke},)) - precompile(Plots.wraptuple, (Tuple{Float64, Array{Symbol, 2}, Int64},)) - precompile(Plots.py_color, (ColorTypes.RGB{Float64},)) - precompile(Plots.wraptuple, (Tuple{Int64, Float64, Symbol},)) - precompile(Plots.tovec, (Array{Float64, 1},)) - precompile(Plots.get_subplot, (Plots.Plot{Plots.PyPlotBackend}, Plots.Subplot{Plots.PyPlotBackend},)) - precompile(Plots.eltype, (Plots.Surface{Array{Float64, 2}},)) - precompile(Plots.nobigs, (Array{Float64, 1},)) - precompile(Plots.get_subplot, (Plots.Plot{Plots.UnicodePlotsBackend}, Plots.Subplot{Plots.UnicodePlotsBackend},)) - precompile(Plots.annotations, (Array{Any, 1},)) - precompile(Plots.wraptuple, (Tuple{Int64, Symbol},)) - precompile(Plots.colorscheme, (Plots.ColorWrapper,)) - precompile(Plots.colorscheme, (Plots.ColorGradient,)) - precompile(Plots.text, (Plots.PlotText,)) - precompile(Plots._replace_markershape, (Plots.Shape,)) - precompile(Plots.wraptuple, (Tuple{Array{Symbol, 2}, Int64, Float64, Plots.Stroke},)) - precompile(Plots.wraptuple, (Tuple{Plots.Shape, Int64, ColorTypes.RGBA{Float64}},)) end diff --git a/src/recipes.jl b/src/recipes.jl index a7b5132d..73ae7a8d 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -61,10 +61,10 @@ end # returns :no, :native, or :recipe depending on how it's supported function seriestype_supported(pkg::AbstractBackend, st::Symbol) # is it natively supported - if st in supported_types(pkg) + if is_seriestype_supported(pkg, st) return :native end - + haskey(_series_recipe_deps, st) || return :no supported = true @@ -85,7 +85,7 @@ function all_seriestypes() sts = Set{Symbol}(keys(_series_recipe_deps)) for bsym in backends() btype = _backendType[bsym] - sts = union(sts, Set{Symbol}(supported_types(btype()))) + sts = union(sts, Set{Symbol}(supported_seriestypes(btype()))) end sort(collect(sts)) end @@ -305,7 +305,7 @@ end # --------------------------------------------------------------------------- # bezier curves -# get the value of the curve point at position t +# get the value of the curve point at position t function bezier_value(pts::AVec, t::Real) val = 0.0 n = length(pts)-1 @@ -553,7 +553,7 @@ end # # compute quantiles # q1,q2,q3,q4,q5 = quantile(values, linspace(0,1,5)) - + # # notch # n = notch_width(q2, q4, length(values)) @@ -567,10 +567,10 @@ end # center = discrete_value!(d[:subplot][:xaxis], glabel)[1] # hw = d[:bar_width] == nothing ? _box_halfwidth : 0.5cycle(d[:bar_width], i) # l, m, r = center - hw, center, center + hw - + # # internal nodes for notches # L, R = center - 0.5 * hw, center + 0.5 * hw - + # # outliers # if Float64(range) != 0.0 # if the range is 0.0, the whiskers will extend to the data # limit = range*(q4-q2) @@ -867,7 +867,7 @@ end # function apply_series_recipe(d::KW, ::Type{Val{:quiver}}) @recipe function f(::Type{Val{:quiver}}, x, y, z) - if :arrow in supported_args() + if :arrow in supported_attrs() quiver_using_arrows(d) else quiver_using_hack(d) diff --git a/src/series.jl b/src/series.jl index 4d61985c..da7b38e5 100644 --- a/src/series.jl +++ b/src/series.jl @@ -233,7 +233,7 @@ end # # images - grays @recipe function f{T<:Gray}(mat::AMat{T}) - if nativeImagesSupported() + if is_seriestype_supported(:image) seriestype := :image n, m = size(mat) SliceIt, 1:m, 1:n, Surface(mat) @@ -248,7 +248,7 @@ end # # images - colors @recipe function f{T<:Colorant}(mat::AMat{T}) - if nativeImagesSupported() + if is_seriestype_supported(:image) seriestype := :image n, m = size(mat) SliceIt, 1:m, 1:n, Surface(mat) @@ -434,4 +434,3 @@ end end end end - diff --git a/src/utils.jl b/src/utils.jl index c997d482..390edb83 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -131,7 +131,7 @@ function replace_image_with_heatmap{T<:Colorant}(z::Array{T}) end function imageHack(d::KW) - :heatmap in supported_types() || error("Neither :image or :heatmap are supported!") + is_seriestype_supported(:heatmap) || error("Neither :image or :heatmap are supported!") d[:seriestype] = :heatmap d[:z], d[:fillcolor] = replace_image_with_heatmap(d[:z].surf) end diff --git a/test/runtests.jl b/test/runtests.jl index 2d384136..eee6acbf 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -23,14 +23,16 @@ facts("PyPlot") do @fact pyplot() --> Plots.PyPlotBackend() @fact backend() --> Plots.PyPlotBackend() - image_comparison_facts(:pyplot, skip=[], eps=img_eps) + image_comparison_facts(:pyplot, skip=[25,30], eps=img_eps) end facts("GR") do @fact gr() --> Plots.GRBackend() @fact backend() --> Plots.GRBackend() - # @static is_linux() && image_comparison_facts(:gr, skip=[], eps=img_eps) + if is_linux() && isinteractive() + image_comparison_facts(:gr, skip=[2,25,30], eps=img_eps) + end end facts("Plotly") do