class_docstr: Helps style a DataFrame or Series according to the data with HTML and CSS.
  
  Parameters
  ----------
  data : Series or DataFrame
  precision : int
      precision to round floats to, defaults to pd.options.display.precision
  table_styles : list-like, default None
      list of {selector: (attr, value)} dicts; see Notes
  uuid : str, default None
      a unique identifier to avoid CSS collisions; generated automatically
  caption : str, default None
      caption to attach to the table
  cell_ids : bool, default True
      If True, each cell will have an ``id`` attribute in their HTML tag.
      The ``id`` takes the form ``T_<uuid>_row<num_row>_col<num_col>``
      where ``<uuid>`` is the unique identifier, ``<num_row>`` is the row
      number and ``<num_col>`` is the column number.
  
  Attributes
  ----------
  env : Jinja2 Environment
  template : Jinja2 Template
  loader : Jinja2 Loader
  
  See Also
  --------
  pandas.DataFrame.style
  
  Notes
  -----
  Most styling will be done by passing style functions into
  ``Styler.apply`` or ``Styler.applymap``. Style functions should
  return values with strings containing CSS ``'attr: value'`` that will
  be applied to the indicated cells.
  
  If using in the Jupyter notebook, Styler has defined a ``_repr_html_``
  to automatically render itself. Otherwise call Styler.render to get
  the generated HTML.
  
  CSS classes are attached to the generated HTML
  
  * Index and Column names include ``index_name`` and ``level<k>``
    where `k` is its level in a MultiIndex
  * Index label cells include
  
    * ``row_heading``
    * ``row<n>`` where `n` is the numeric position of the row
    * ``level<k>`` where `k` is the level in a MultiIndex
  
  * Column label cells include
    * ``col_heading``
    * ``col<n>`` where `n` is the numeric position of the column
    * ``evel<k>`` where `k` is the level in a MultiIndex
  
  * Blank cells include ``blank``
  * Data cells include ``data``
class_docstr_tok: ["Helps","style","a","DataFrame","or","Series","according","to","the","data","with","HTML","and","CSS",".","Parameters","--","--","--","--","--","data",":","Series","or","DataFrame","precision",":","int","precision","to","round","floats","to",",","defaults","to","pd.options.display.precision","table_styles",":","list-like",",","default","None","list","of","{","selector",":","(","attr",",","value",")","}","dicts",";","see","Notes","uuid",":","str",",","default","None","a","unique","identifier","to","avoid","CSS","collisions",";","generated","automatically","caption",":","str",",","default","None","caption","to","attach","to","the","table","cell_ids",":","bool",",","default","True","If","True",",","each","cell","will","have","an","``","id","``","attribute","in","their","HTML","tag",".","The","``","id","``","takes","the","form","``","T_","<","uuid",">","_row","<","num_row",">","_col","<","num_col",">","``","where","``","<","uuid",">","``","is","the","unique","identifier",",","``","<","num_row",">","``","is","the","row","number","and","``","<","num_col",">","``","is","the","column","number",".","Attributes","--","--","--","--","--","env",":","Jinja2","Environment","template",":","Jinja2","Template","loader",":","Jinja2","Loader","See","Also","--","--","--","--","pandas.DataFrame.style","Notes","--","--","-","Most","styling","will","be","done","by","passing","style","functions","into","``","Styler.apply","``","or","``","Styler.applymap","``",".","Style","functions","should","return","values","with","strings","containing","CSS","``","'attr",":","value","'","``","that","will","be","applied","to","the","indicated","cells",".","If","using","in","the","Jupyter","notebook",",","Styler","has","defined","a","``","_repr_html_","``","to","automatically","render","itself",".","Otherwise","call","Styler.render","to","get","the","generated","HTML",".","CSS","classes","are","attached","to","the","generated","HTML","*","Index","and","Column","names","include","``","index_name","``","and","``","level","<","k",">","``","where","`","k","`","is","its","level","in","a","MultiIndex","*","Index","label","cells","include","*","``","row_heading","``","*","``","row","<","n",">","``","where","`","n","`","is","the","numeric","position","of","the","row","*","``","level","<","k",">","``","where","`","k","`","is","the","level","in","a","MultiIndex","*","Column","label","cells","include","*","``","col_heading","``","*","``","col","<","n",">","``","where","`","n","`","is","the","numeric","position","of","the","column","*","``","evel","<","k",">","``","where","`","k","`","is","the","level","in","a","MultiIndex","*","Blank","cells","include","``","blank","``","*","Data","cells","include","``","data","``"]
docstr: Draw bar chart in the cell backgrounds.
  
  Parameters
  ----------
  subset : IndexSlice, optional
      A valid slice for `data` to limit the style application to.
  axis : int, str or None, default 0
      Apply to each column (`axis=0` or `'index'`)
      or to each row (`axis=1` or `'columns'`) or
      to the entire DataFrame at once with `axis=None`.
  color : str or 2-tuple/list
      If a str is passed, the color is the same for both
      negative and positive numbers. If 2-tuple/list is used, the
      first element is the color_negative and the second is the
      color_positive (eg: ['#d65f5f', '#5fba7d']).
  width : float, default 100
      A number between 0 or 100. The largest value will cover `width`
      percent of the cell's width.
  align : {'left', 'zero',' mid'}, default 'left'
      How to align the bars with the cells.
  
      - 'left' : the min value starts at the left of the cell.
      - 'zero' : a value of zero is located at the center of the cell.
      - 'mid' : the center of the cell is at (max-min)/2, or
        if values are all negative (positive) the zero is aligned
        at the right (left) of the cell.
  
        .. versionadded:: 0.20.0
  
  vmin : float, optional
      Minimum bar value, defining the left hand limit
      of the bar drawing range, lower values are clipped to `vmin`.
      When None (default): the minimum value of the data will be used.
  
      .. versionadded:: 0.24.0
  
  vmax : float, optional
      Maximum bar value, defining the right hand limit
      of the bar drawing range, higher values are clipped to `vmax`.
      When None (default): the maximum value of the data will be used.
  
      .. versionadded:: 0.24.0
  
  Returns
  -------
  self : Styler
code: def bar(
      self,
      subset=None,
      axis=0,
      color="#d65f5f",
      width=100,
      align="left",
      vmin=None,
      vmax=None,
  ):
      """
      Draw bar chart in the cell backgrounds.
  
      Parameters
      ----------
      subset : IndexSlice, optional
          A valid slice for `data` to limit the style application to.
      axis : int, str or None, default 0
          Apply to each column (`axis=0` or `'index'`)
          or to each row (`axis=1` or `'columns'`) or
          to the entire DataFrame at once with `axis=None`.
      color : str or 2-tuple/list
          If a str is passed, the color is the same for both
          negative and positive numbers. If 2-tuple/list is used, the
          first element is the color_negative and the second is the
          color_positive (eg: ['#d65f5f', '#5fba7d']).
      width : float, default 100
          A number between 0 or 100. The largest value will cover `width`
          percent of the cell's width.
      align : {'left', 'zero',' mid'}, default 'left'
          How to align the bars with the cells.
  
          - 'left' : the min value starts at the left of the cell.
          - 'zero' : a value of zero is located at the center of the cell.
          - 'mid' : the center of the cell is at (max-min)/2, or
            if values are all negative (positive) the zero is aligned
            at the right (left) of the cell.
  
            .. versionadded:: 0.20.0
  
      vmin : float, optional
          Minimum bar value, defining the left hand limit
          of the bar drawing range, lower values are clipped to `vmin`.
          When None (default): the minimum value of the data will be used.
  
          .. versionadded:: 0.24.0
  
      vmax : float, optional
          Maximum bar value, defining the right hand limit
          of the bar drawing range, higher values are clipped to `vmax`.
          When None (default): the maximum value of the data will be used.
  
          .. versionadded:: 0.24.0
  
      Returns
      -------
      self : Styler
      """
      if align not in ("left", "zero", "mid"):
          raise ValueError(
              "`align` must be one of {'left', 'zero',' mid'}"
          )
  
      if not (is_list_like(color)):
          color = [color, color]
      elif len(color) == 1:
          color = [color[0], color[0]]
      elif len(color) > 2:
          raise ValueError(
              "`color` must be string or a list-like"
              " of length 2: [`color_neg`, `color_pos`]"
              " (eg: color=['#d65f5f', '#5fba7d'])"
          )
  
      subset = _maybe_numeric_slice(self.data, subset)
      subset = _non_reducing_slice(subset)
      self.apply(
          self._bar,
          subset=subset,
          axis=axis,
          align=align,
          colors=color,
          width=width,
          vmin=vmin,
          vmax=vmax,
      )
  
      return self
  
imports: from collections import defaultdict
  from contextlib import contextmanager
  import copy
  from functools import partial
  from itertools import product
  from uuid import uuid1
  import numpy
  from pandas.compat import range
  from pandas.util._decorators import Appender
  from pandas.core.dtypes.common import is_float, is_string_like
  from pandas.core.dtypes.generic import ABCSeries
  import pandas
  from pandas.api.types import is_dict_like, is_list_like
  import pandas.core.common
  from pandas.core.config import get_option
  from pandas.core.generic import _shared_docs
  from pandas.core.indexing import _maybe_numeric_slice, _non_reducing_slice
label_desc: Use image node_id 33 for calling the Styler obj's underlying member method code with example usage: obj.bar(subset, axis, color, width, align, vmin, vmax) and returns: self