linearFn = function(x, x0, x1, y0, y1) {
        return y0 + (y1 - y0) * (x - x0) / (x1 - x0);
    }
pattern: create and apply a pattern fill

@param {object} sel: d3 selection to apply this pattern to
    You can use `selection.call(Drawing.pattern, ...)`
@param {string} calledBy: option to know the caller component
@param {DOM element} gd: the graph div `sel` is part of
@param {string} patternID: a unique (within this plot) identifier
    for this pattern, so that we don't create unnecessary definitions
@param {number} size: size of unit squares for repetition of this pattern
@param {number} solidity: how solid lines of this pattern are
@param {string} mcc: color when painted with colorscale
@param {string} fillmode: fillmode for this pattern
@param {string} bgcolor: background color for this pattern
@param {string} fgcolor: foreground color for this pattern
@param {number} fgopacity: foreground opacity for this pattern