The reference document is quite large; a table of contents would help readers navigate and find topics. (TOC was generated via [DocToc](http://doctoc.herokuapp.com/))
An axis is innermost when it's first among those not just in its
direction, but also on its side, i.e. left/right, of the plot. So the
inArray check should be against the samePosition list, not all.
Resolves#1056.
Resolves#1032. Previously it was impossible to draw the same text,
with the same style, in two different locations, because the second
would end up using the first's cache entry, which only ended up moving
the element to a new position.
Now each cache entry holds a list of positions at which the text
appears, creating clones of the original element for each position
beyond the first.
Flot 0.7 calculated x-axis label dimensions by assigning each label a
fixed width, then measuring the height as determined by the browser. A
side-effect of this technique is that x-axis label divs received a fixed
width. The rewrite of the text system in 0.8 accidentally removed this
feature; this patch restores it.
(Realted to flot issue #1031: https://github.com/flot/flot/issues/1031)
Currently, if the user declares a custom color palette with less than 5 colors (say, n), $.extend(true, options, opts) only modifies the first n colors of the default palette and leaves the last 5-n in place. When the number of series is >n, colors are used that are not part of user-defined palette, contrary to description of colors array in API.
This line overrides the extended colors array and replaces it with exactly the user-defined colors array, when present. Afterwards, the user color palette is respected by the auto tinting/shading system for when there are more series than colors.
Resolves#1016. Initialization consists of adding the tickGenerator and
tickFormatter functions to each axis. This should happen exactly once
per plot, but since the code was previously using the processDatapoints
hook, it was called once per series. When no series were present, it
ran zero times, triggering an exception when we later checked for the
existence of the functions.
Binding to the processOptions hook ensures that the axes are always
modified once, regardless of how many series there are. The axes are
already initialized by the point the hook runs, so this change shouldn't
cause any problems.