class_docstr: Handle individual variable logic.
code: def __init__(
      self,
      var_name,
      data,
      y_start,
      model_names,
      combined,
      combine_dims,
      colors,
      labeller,
  ):
      self.var_name = var_name
      self.data = data
      self.y_start = y_start
      self.model_names = model_names
      self.combined = combined
      self.combine_dims = combine_dims
      self.colors = colors
      self.labeller = labeller
      self.model_color = dict(zip(self.model_names, self.colors))
      max_chains = max(datum.chain.max().values for datum in data)
      self.chain_offset = len(data) * 0.45 / max(1, max_chains)
      self.var_offset = 1.5 * self.chain_offset
      self.group_offset = 2 * self.var_offset
  
imports: from collections import OrderedDict, defaultdict
  from itertools import tee
  import matplotlib.pyplot
  import numpy
  from matplotlib.colors import to_rgba
  from matplotlib.lines import Line2D
  from ....stats import hdi
  from ....stats.density_utils import get_bins, histogram, kde
  from ....stats.diagnostics import _ess, _rhat
  from ....sel_utils import xarray_var_iter
  from ....utils import conditional_jit
  from ...plot_utils import _scale_fig_size
  from .None import backend_kwarg_defaults, backend_show
label_desc: Use image node_id 1 to create a new VarHandler object  with example: obj = VarHandler(var_name, data, y_start, model_names, combined, combine_dims, colors, labeller)