A special type that will break up incoming data into groups, and allow for easier creation of grouped plots

_process_plotrecipes!(plt, kw_list)

Grab the first in line to be processed and pass it through apply_recipe to generate a list of RecipeData objects. If we applied a "plot recipe" without error, then add the returned datalist's KWs, otherwise we just add the original KW.

_process_userrecipes(plt, plotattributes, args)

Wrap input arguments in a RecipeData' vector and recursively apply user recipes and type recipes on the first element. Prepend the returnedRecipeDatavector. If an element with empyargsis returned pop it from the vector, finish up, and it to vector ofDicts with processed series. When all arguments are processed return the seriesDict`.

add_series!(plt, kw)

Adds the series defined by kw to the plot object. For example Plots updates the current subplot arguments, expands extrema and pushes the the series to the series_list of plt.

get_axis_limits(plt, letter)

Get the limits for the axis specified by letter (:x, :y or :z) in plt. If it errors, tryrange from PlotUtils is used.


Returns true if myseriestype represents a 3D series, false otherwise.

is_axis_attribute(plt, attr)

Returns true if attr is an axis attribute, i.e. it applies to xattr, yattr and zattr, otherwise false.


Returns true if myseriestype represents a surface series, false otherwise.

plot_setup!(plt, plotattributes, kw_list)

Setup plot, subplots and layouts. For example, Plots creates the backend figure, initializes subplots, expands extrema and links subplot axes.

postprocess_axis_args!(plt, plotattributes, letter)

Removes the :letter key from plotattributes and does the same prepending of the letters as preprocess_axis_args!.

preprocess_attributes!(plt, plotattributes)

Any plotting package specific preprocessing of user or recipe input happens here. For example, Plots replaces aliases and expands magic arguments.

process_userrecipe!(plt, attributes_list, attributes)

Do plotting package specific post-processing and add series attributes to attributeslist. For example, Plots increases the number of series in plt, sets `:seriesplotindex` in attributes and possible adds new series attributes for errorbars or smooth.

recipe_pipeline!(plt, plotattributes, args)

Recursively apply user recipes, type recipes, plot recipes and series recipes to build a list of Dicts, each corresponding to a series. At the beginning, plotattributes contains only the keyword arguments passed in by the user. Then, add all series to the plot object plt and return it.

splittable_attribute(plt, key, val, len)

Returns true if the attribute key with the value val can be split into groups with group provided as a vector of length len, false otherwise.

warn_on_recipe_aliases!(plt, plotattributes, recipe_type, args...)

Warn if an alias is dedected in plotattributes after a recipe of type recipe_type is applied to 'args'. recipe_type is either :user, :type, :plot or :series.