    def __init__(self, height, width, functions, char="#", colour=Screen.COLOUR_GREEN,
                 bg=Screen.COLOUR_BLACK, gradient=None, scale=None, axes=_BarChartBase.X_AXIS,
                 intervals=None, labels=False, border=True, keys=None, gap=None):
        """
        :param height: The max height of the rendered image.
        :param width: The max width of the rendered image.
        :param functions: List of functions to chart.
        :param char: Character to use for the bar. Defaults to '#'
        :param colour: Colour(s) to use for the bars.  This can be a single value or list of
            values (to cycle around for each bar). Defaults to green.
        :param bg: Background colour to use for the bars.  This can be a single value or list of
            values (to cycle around for each bar). Defaults to black.
        :param gradient: Colour gradient to use for the bars.  This is a list of tuple pairs
            specifying a threshold and a colour, or triplets to include a background colour too.
            Defaults to no gradients.
        :param scale: Maximum value for the bars.  This is used to scale the function values to
            the maximum space available.  Any value over this will be truncated when drawn.
            Defaults to the number of available characters in the chart.
        :param axes: Which axes to draw.
        :param intervals: Units for interval markers on the main axis. Defaults to none.
        :param labels: Whether to draw size indication labels on the y-axis.
        :param border: Whether to draw a border around the chart.
        :param keys: Optional keys to name each bar on the x-axis.
        :param gap: distance between bars. A value of None will auto-calculate (default). Minimum
            value when auto-calculated is 1, for no gaps specify 0.

        If the scale parameter is not specified, the maximum length of the bar is based on the
        available space. A chart with no borders, no axes, no keys or labels will have a bar
        height based solely on the width of the graph.

            * Borders use 4 characters height and 6 characters width
            * Keys use a height of 1
            * Labels vertical bar chart use the width of the widest label plus 1 (label values
              depend on the scale of the chart)
            * An X_AXIS uses a height of 1
            * A Y_AXIS uses a width of 1
        """
        super().__init__(
            height, width, functions, char, colour, bg, gradient, scale, axes, intervals, labels, border,
            keys, gap)
:param height: The max height of the rendered image.
:param width: The max width of the rendered image.
:param functions: List of functions to chart.
:param char: Character to use for the bar. Defaults to '#'
:param colour: Colour(s) to use for the bars.  This can be a single value or list of
values (to cycle around for each bar). Defaults to green.
:param bg: Background colour to use for the bars.  This can be a single value or list of
values (to cycle around for each bar). Defaults to black.
:param gradient: Colour gradient to use for the bars.  This is a list of tuple pairs
specifying a threshold and a colour, or triplets to include a background colour too.
Defaults to no gradients.
:param scale: Maximum value for the bars.  This is used to scale the function values to
the maximum space available.  Any value over this will be truncated when drawn.
Defaults to the number of available characters in the chart.
:param axes: Which axes to draw.
:param intervals: Units for interval markers on the main axis. Defaults to none.
:param labels: Whether to draw size indication labels on the y-axis.
:param border: Whether to draw a border around the chart.
:param keys: Optional keys to name each bar on the x-axis.
:param gap: distance between bars. A value of None will auto-calculate (default). Minimum
value when auto-calculated is 1, for no gaps specify 0.

If the scale parameter is not specified, the maximum length of the bar is based on the
available space. A chart with no borders, no axes, no keys or labels will have a bar
height based solely on the width of the graph.

* Borders use 4 characters height and 6 characters width
* Keys use a height of 1
* Labels vertical bar chart use the width of the widest label plus 1 (label values
depend on the scale of the chart)
* An X_AXIS uses a height of 1
* A Y_AXIS uses a width of 1
asciimatics/renderers/charts.py