diff --git a/src/backends.jl b/src/backends.jl index f2ce6bec..8cdfe0cb 100644 --- a/src/backends.jl +++ b/src/backends.jl @@ -186,3 +186,44 @@ is_string_supported() = is_string_supported(backend()) nativeImagesSupported() = nativeImagesSupported(backend()) # --------------------------------------------------------- + +# these are args which every backend supports because they're not used in the backend code +const _base_supported_args = [ + :color_palette, + :background_color, :background_color_subplot, + :foreground_color, :foreground_color_subplot, + :group, + :seriestype, + :seriescolor, :seriesalpha, + :smooth, + :xerror, :yerror, + :subplot, + :x, :y, :z, + :show, :size, + :margin, + :left_margin, + :right_margin, + :top_margin, + :bottom_margin, + :html_output_format, + :layout, + :link, + :primary, + :series_annotations, + :subplot_index, + :discrete_values, + :projection, + +] + +function merge_with_base_supported(v::AVec) + v = vcat(v, _base_supported_args) + for vi in v + if haskey(_axis_defaults, vi) + for letter in (:x,:y,:z) + push!(v, Symbol(letter,vi)) + end + end + end + v +end diff --git a/src/backends/bokeh.jl b/src/backends/bokeh.jl index 6653285f..1c67b5b9 100644 --- a/src/backends/bokeh.jl +++ b/src/backends/bokeh.jl @@ -2,7 +2,7 @@ # https://github.com/bokeh/Bokeh.jl -supported_args(::BokehBackend) = [ +supported_args(::BokehBackend) = merge_with_base_supported([ # :annotations, # :axis, # :background_color, @@ -58,7 +58,7 @@ supported_args(::BokehBackend) = [ # :grid, # :surface, # :levels, - ] + ]) supported_types(::BokehBackend) = [:path, :scatter] supported_styles(::BokehBackend) = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot] supported_markers(::BokehBackend) = [:none, :auto, :ellipse, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5] diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index 4c75fb1f..d32599b7 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -2,7 +2,7 @@ # https://github.com/dcjones/Gadfly.jl -supported_args(::GadflyBackend) = [ +supported_args(::GadflyBackend) = merge_with_base_supported([ :annotations, :background_color, :foreground_color, :color_palette, :group, :label, :seriestype, @@ -22,7 +22,7 @@ supported_args(::GadflyBackend) = [ :xerror, :yerror, :ribbon, :quiver, :orientation, - ] + ]) supported_types(::GadflyBackend) = [ :path, :scatter, :hexbin, diff --git a/src/backends/glvisualize.jl b/src/backends/glvisualize.jl index 923fd1b1..de834204 100644 --- a/src/backends/glvisualize.jl +++ b/src/backends/glvisualize.jl @@ -2,7 +2,7 @@ # [WEBSITE] -supported_args(::GLVisualizeBackend) = [ +supported_args(::GLVisualizeBackend) = merge_with_base_supported([ # :annotations, # :axis, # :background_color, @@ -17,7 +17,7 @@ supported_args(::GLVisualizeBackend) = [ # :legend, # :linecolor, # :linestyle, - :seriestype + # :seriestype # :seriescolor, :seriesalpha, # :linewidth, # :linealpha, @@ -58,7 +58,7 @@ supported_args(::GLVisualizeBackend) = [ # :grid, # :surface # :levels, - ] + ]) supported_types(::GLVisualizeBackend) = [:surface] supported_styles(::GLVisualizeBackend) = [:auto, :solid] supported_markers(::GLVisualizeBackend) = [:none, :auto, :ellipse] diff --git a/src/backends/gr.jl b/src/backends/gr.jl index 538dc404..476d3ff1 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -3,39 +3,32 @@ # significant contributions by @jheinen -supported_args(::GRBackend) = [ +supported_args(::GRBackend) = merge_with_base_supported([ :annotations, - :background_color, :foreground_color, :color_palette, :background_color_legend, :background_color_inside, :background_color_outside, :foreground_color_legend, :foreground_color_grid, :foreground_color_axis, :foreground_color_text, :foreground_color_border, - :group, :label, - :seriestype, :seriescolor, :seriesalpha, :linecolor, :linestyle, :linewidth, :linealpha, :markershape, :markercolor, :markersize, :markeralpha, :markerstrokewidth, :markerstrokecolor, :markerstrokealpha, :fillrange, :fillcolor, :fillalpha, :bins, - :n, :nc, :nr, :layout, - :smooth, - :title, :window_title, :show, :size, - :x, :xguide, :xlims, :xticks, :xscale, :xflip, - :y, :yguide, :ylims, :yticks, :yscale, :yflip, - :z, :zguide, :zlims, :zticks, :zscale, :zflip, - :z, + :layout, + :title, :window_title, + :guide, :lims, :ticks, :scale, :flip, :tickfont, :guidefont, :legendfont, :grid, :legend, :colorbar, :marker_z, :levels, - :xerror, :yerror, :ribbon, :quiver, :orientation, :overwrite_figure, :polar, :aspect_ratio, - :normalize, :weights -] + :normalize, :weights, + :inset_subplots, +]) supported_types(::GRBackend) = [ :path, :scatter, :heatmap, :pie, :image, diff --git a/src/backends/pgfplots.jl b/src/backends/pgfplots.jl index f9384eef..d7f131e2 100644 --- a/src/backends/pgfplots.jl +++ b/src/backends/pgfplots.jl @@ -2,39 +2,28 @@ # significant contributions by: @pkofod -supported_args(::PGFPlotsBackend) = [ +supported_args(::PGFPlotsBackend) = merge_with_base_supported([ # :annotations, - :background_color, :foreground_color, - :color_palette, # :background_color_legend, :background_color_inside, # :background_color_outside, # :foreground_color_legend, :foreground_color_grid, :foreground_color_axis, # :foreground_color_text, :foreground_color_border, - :group, :label, - :seriestype, :seriescolor, :seriesalpha, :linecolor, :linestyle, :linewidth, :linealpha, :markershape, :markercolor, :markersize, :markeralpha, - :markerstrokewidth, :markerstrokecolor, :markerstrokealpha, + :markerstrokewidth, :markerstrokecolor, :markerstrokealpha, :markerstrokestyle, :fillrange, :fillcolor, :fillalpha, :bins, # :bar_width, :bar_edges, - # :n, :nc, :nr, - :layout, - # :smooth, :title, # :window_title, - :show, :size, - :x, :xguide, :xlims, :xticks, :xscale, :xflip, :xrotation, - :y, :yguide, :ylims, :yticks, :yscale, :yflip, :yrotation, - :z, :zguide, :zlims, :zticks, :zscale, :zflip, :zrotation, + :guide, :lims, :ticks, :scale, :flip, :rotation, :tickfont, :guidefont, :legendfont, :grid, :legend, # :colorbar, # :marker_z, :levels, - # :xerror, :yerror, # :ribbon, :quiver, :arrow, # :orientation, # :overwrite_figure, @@ -42,7 +31,7 @@ supported_args(::PGFPlotsBackend) = [ # :normalize, :weights, :contours, :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, :ellipse, :rect, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5, :pentagon] #vcat(_allMarkers, Shape) diff --git a/src/backends/plotly.jl b/src/backends/plotly.jl index 9bf392ca..4598cf7d 100644 --- a/src/backends/plotly.jl +++ b/src/backends/plotly.jl @@ -1,34 +1,26 @@ # https://plot.ly/javascript/getting-started -supported_args(::PlotlyBackend) = [ - :annotations, :color_palette, - :background_color, +supported_args(::PlotlyBackend) = merge_with_base_supported([ + :annotations, :background_color_legend, :background_color_inside, :background_color_outside, - :foreground_color, :foreground_color_legend, :foreground_color_guide, # :foreground_color_grid, :foreground_color_axis, :foreground_color_text, :foreground_color_border, - :group, + :foreground_color_title, :label, - :seriestype, :seriescolor, :seriesalpha, :linecolor, :linestyle, :linewidth, :linealpha, :markershape, :markercolor, :markersize, :markeralpha, - :markerstrokewidth, :markerstrokecolor, :markerstrokealpha, + :markerstrokewidth, :markerstrokecolor, :markerstrokealpha, :markerstrokestyle, :fillrange, :fillcolor, :fillalpha, :bins, - :layout, :title, :title_location, :titlefont, - :window_title, :show, :size, - :x, :xguide, :xlims, :xticks, :xscale, :xflip, :xrotation, - :y, :yguide, :ylims, :yticks, :yscale, :yflip, :yrotation, - :z, :zguide, :zlims, :zticks, :zscale, :zflip, :zrotation, - :z, + :window_title, + :guide, :lims, :ticks, :scale, :flip, :rotation, :tickfont, :guidefont, :legendfont, :grid, :legend, :colorbar, :marker_z, :levels, - :xerror, :yerror, :ribbon, :quiver, :orientation, # :overwrite_figure, @@ -36,7 +28,8 @@ supported_args(::PlotlyBackend) = [ :normalize, :weights, # :contours, :aspect_ratio, :hover, - ] + :inset_subplots, + ]) supported_types(::PlotlyBackend) = [ :path, :scatter, :bar, :pie, :heatmap, diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index a1a44219..6a73521d 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -2,41 +2,33 @@ # https://github.com/stevengj/PyPlot.jl -supported_args(::PyPlotBackend) = [ +supported_args(::PyPlotBackend) = merge_with_base_supported([ :annotations, - :background_color, :foreground_color, :color_palette, :background_color_legend, :background_color_inside, :background_color_outside, - :foreground_color_legend, :foreground_color_grid, :foreground_color_axis, - :foreground_color_text, :foreground_color_border, - :group, + :foreground_color_grid, :foreground_color_legend, :foreground_color_title, + :foreground_color_axis, :foreground_color_border, :foreground_color_guide, :foreground_color_text, :label, - :seriestype, - :seriescolor, :seriesalpha, :linecolor, :linestyle, :linewidth, :linealpha, :markershape, :markercolor, :markersize, :markeralpha, :markerstrokewidth, :markerstrokecolor, :markerstrokealpha, :fillrange, :fillcolor, :fillalpha, - :bins, :bar_width, :bar_edges, - :n, :nc, :nr, :layout, - :smooth, - :title, :window_title, :show, :size, - :x, :xguide, :xlims, :xticks, :xscale, :xflip, :xrotation, - :y, :yguide, :ylims, :yticks, :yscale, :yflip, :yrotation, - :z, :zguide, :zlims, :zticks, :zscale, :zflip, :zrotation, - :z, + :bins, :bar_width, :bar_edges, :bar_position, + :title, :title_location, :titlefont, + :window_title, + :guide, :lims, :ticks, :scale, :flip, :rotation, :tickfont, :guidefont, :legendfont, :grid, :legend, :colorbar, :marker_z, :levels, - :xerror, :yerror, :ribbon, :quiver, :arrow, :orientation, :overwrite_figure, :polar, - :normalize, :weights, :contours, :aspect_ratio, + :normalize, :weights, + :contours, :aspect_ratio, :match_dimensions, - :subplot, :clims, - ] + :inset_subplots, + ]) supported_types(::PyPlotBackend) = [ :path, :steppre, :steppost, :shape, :scatter, :histogram2d, :hexbin, :histogram, diff --git a/src/backends/qwt.jl b/src/backends/qwt.jl index 78fd1886..e4b43ac9 100644 --- a/src/backends/qwt.jl +++ b/src/backends/qwt.jl @@ -2,48 +2,25 @@ # https://github.com/tbreloff/Qwt.jl -supported_args(::QwtBackend) = [ +supported_args(::QwtBackend) = merge_with_base_supported([ :annotations, - :axis, - :background_color, :linecolor, - :color_palette, :fillrange, :fillcolor, - :foreground_color, - :group, :label, - :layout, :legend, :seriescolor, :seriesalpha, :linestyle, - :seriestype, :linewidth, :markershape, :markercolor, :markersize, - :n, :bins, - :nc, - :nr, :pos, - :smooth, - :show, - :size, :title, :window_title, - :x, - :xguide, - :xlims, - :xticks, - :y, - :yguide, - :ylims, - :yrightlabel, - :yticks, - :xscale, - :yscale, - ] + :guide, :lims, :ticks, :scale, + ]) supported_types(::QwtBackend) = [:path, :scatter, :hexbin, :bar] supported_markers(::QwtBackend) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5, :star8, :hexagon] supported_scales(::QwtBackend) = [:identity, :log10] diff --git a/src/backends/unicodeplots.jl b/src/backends/unicodeplots.jl index 3a6be5f6..eb3a6ab2 100644 --- a/src/backends/unicodeplots.jl +++ b/src/backends/unicodeplots.jl @@ -1,56 +1,17 @@ # https://github.com/Evizero/UnicodePlots.jl -supported_args(::UnicodePlotsBackend) = [ - # :annotations, - # :args, - # :axis, - # :background_color, - # :linecolor, - # :fill, - # :foreground_color, - :group, - # :heatmap_c, - # :kwargs, +supported_args(::UnicodePlotsBackend) = merge_with_base_supported([ :label, - # :layout, :legend, :seriescolor, :seriesalpha, :linestyle, - :seriestype, - # :linewidth, :markershape, - # :markercolor, - # :markersize, - # :markerstrokewidth, - # :markerstrokecolor, - # :markerstrokestyle, - # :n, :bins, - # :nc, - # :nr, - # :pos, - # :reg, - # :ribbon, - :show, - :size, :title, :window_title, - :x, - :xguide, - :xlims, - # :xticks, - :y, - :yguide, - :ylims, - # :yrightlabel, - # :yticks, - # :xscale, - # :yscale, - # :xflip, - # :yflip, - # :z, - ] + :guide, :lims, + ]) supported_types(::UnicodePlotsBackend) = [ :path, :scatter, :histogram2d diff --git a/src/backends/winston.jl b/src/backends/winston.jl index 65baafd4..10117100 100644 --- a/src/backends/winston.jl +++ b/src/backends/winston.jl @@ -3,58 +3,24 @@ # credit goes to https://github.com/jverzani for contributing to the first draft of this backend implementation -supported_args(::WinstonBackend) = [ +supported_args(::WinstonBackend) = merge_with_base_supported([ :annotations, - # :args, - # :axis, - # :background_color, :linecolor, - :color_palette, :fillrange, :fillcolor, - # :foreground_color, - :group, - # :heatmap_c, - # :kwargs, :label, - # :layout, :legend, :seriescolor, :seriesalpha, :linestyle, - :seriestype, :linewidth, :markershape, :markercolor, :markersize, - # :markerstrokewidth, - # :markerstrokecolor, - # :markerstrokestyle, - # :n, :bins, - # :nc, - # :nr, - # :pos, - :smooth, - # :ribbon, - :show, - :size, :title, :window_title, - :x, - :xguide, - :xlims, - # :xticks, - :y, - :yguide, - :ylims, - # :yrightlabel, - # :yticks, - :xscale, - :yscale, - # :xflip, - # :yflip, - # :z, - ] + :guide, :lims, :scale, + ]) supported_types(::WinstonBackend) = [:path, :scatter, :bar] supported_styles(::WinstonBackend) = [:auto, :solid, :dash, :dot, :dashdot] supported_markers(::WinstonBackend) = [:none, :auto, :rect, :ellipse, :diamond, :utriangle, :dtriangle, :cross, :xcross, :star5]