Checking of the `levels` keyword argument will be moved out
of individual backends' code, so we can assume that `levels`
if present in `plotattributes` is either an `AbstractVector` or
`Integer`.
The `levels` keyword argument does not actually support
values of type `NTuple{2,Integer}` despite the existing documentation,
so remove the mention of this from `_arg_desc` and update the
description of what `levels` means.
- Test that the `levels` keyword argument is correctly stored.
- For the Plotly (and PlotlyJS) backend, test that `levels`
is correctly converted to backend-specific settings.
Plotly does not support arbitrary contour values, but can plot
specific contours if they are an equally-spaced range. This
commit implements the plotting of contours if the `levels`
keyword argument is passed an `AbstractRange`, or if a set
of arbitrary values are passed. In the latter case, however,
since this is not supported by Plotly, a range based on the
first and last values of the collection passed in is created
and used to define the contours. A warning is then issued to
the user.
Otherwise, any other types are assumed to be number-like and
adjusted as previously. Note that Plotly does not guarantee
the exact number of contours will be used.
This partly addresses #3356.
See https://github.com/plotly/plotly.js/issues/4503 (Plotly issue
tracking the ability to set arbitrary contours).
* fix series_annotations for bar
* fix my typos in bar recipe
* fix fillrange of annotation series for groupedbar
* fix series_annotations for bar
* fix my typos in bar recipe
* fix fillrange of annotation series for groupedbar
* fix series_annotations for bar
* fix my typos in bar recipe
* fix fillrange of annotation series for groupedbar
* fix series_annotations for bar
* fix fillrange of annotation series for groupedbar