class_docstr: Class to handle logic from ForestPlot.
docstr: Draw ridgeplot for each plotter.
  
  Parameters
  ----------
  hdi_prob : float
      Probability for the highest density interval.
  mult : float
      How much to multiply height by. Set this to greater than 1 to have some overlap.
  linewidth : float
      Width of line on border of ridges
  markersize : float
      Size of marker in center of forestplot line
  alpha : float
      Transparency of ridges
  ridgeplot_kind : string
      By default ("auto") continuous variables are plotted using KDEs and discrete ones using
      histograms. To override this use "hist" to plot histograms and "density" for KDEs
  ridgeplot_truncate: bool
      Whether to truncate densities according to the value of hdi_prop. Defaults to True
  ridgeplot_quantiles: list
      Quantiles in ascending order used to segment the KDE. Use [.25, .5, .75] for quartiles.
      Defaults to None.
  ax : Axes
      Axes to draw on
docstr_tok: ["Draw","ridgeplot","for","each","plotter",".","Parameters","--","--","--","--","--","hdi_prob",":","float","Probability","for","the","highest","density","interval",".","mult",":","float","How","much","to","multiply","height","by",".","Set","this","to","greater","than","1","to","have","some","overlap",".","linewidth",":","float","Width","of","line","on","border","of","ridges","markersize",":","float","Size","of","marker","in","center","of","forestplot","line","alpha",":","float","Transparency","of","ridges","ridgeplot_kind",":","string","By","default","(","``","auto","''",")","continuous","variables","are","plotted","using","KDEs","and","discrete","ones","using","histograms",".","To","override","this","use","``","hist","''","to","plot","histograms","and","``","density","''","for","KDEs","ridgeplot_truncate",":","bool","Whether","to","truncate","densities","according","to","the","value","of","hdi_prop",".","Defaults","to","True","ridgeplot_quantiles",":","list","Quantiles","in","ascending","order","used","to","segment","the","KDE",".","Use","[",".25",",",".5",",",".75","]","for","quartiles",".","Defaults","to","None",".","ax",":","Axes","Axes","to","draw","on"]
code: def ridgeplot(
      self,
      hdi_prob,
      mult,
      linewidth,
      markersize,
      alpha,
      ridgeplot_kind,
      ridgeplot_truncate,
      ridgeplot_quantiles,
      ax,
  ):
      """Draw ridgeplot for each plotter.
  
      Parameters
      ----------
      hdi_prob : float
          Probability for the highest density interval.
      mult : float
          How much to multiply height by. Set this to greater than 1 to have some overlap.
      linewidth : float
          Width of line on border of ridges
      markersize : float
          Size of marker in center of forestplot line
      alpha : float
          Transparency of ridges
      ridgeplot_kind : string
          By default ("auto") continuous variables are plotted using KDEs and discrete ones using
          histograms. To override this use "hist" to plot histograms and "density" for KDEs
      ridgeplot_truncate: bool
          Whether to truncate densities according to the value of hdi_prop. Defaults to True
      ridgeplot_quantiles: list
          Quantiles in ascending order used to segment the KDE. Use [.25, .5, .75] for quartiles.
          Defaults to None.
      ax : Axes
          Axes to draw on
      """
      if alpha is None:
          alpha = 1.0
      zorder = 0
      for plotter in self.plotters.values():
          for x, y_min, y_max, hdi_, y_q, color in plotter.ridgeplot(
              hdi_prob, mult, ridgeplot_kind
          ):
              if alpha == 0:
                  border = color
                  facecolor = "None"
              else:
                  border = "k"
              if x.dtype.kind == "i":
                  if ridgeplot_truncate:
                      facecolor = to_rgba(color, alpha)
                      y_max = y_max[(x >= hdi_[0]) & (x <= hdi_[1])]
                      x = x[(x >= hdi_[0]) & (x <= hdi_[1])]
                  else:
                      facecolor = [
                          to_rgba(color, alpha) if ci else "None"
                          for ci in ((x >= hdi_[0]) & (x <= hdi_[1]))
                      ]
                  y_min = np.ones_like(x) * y_min
                  ax.bar(
                      x,
                      y_max - y_min,
                      bottom=y_min,
                      linewidth=linewidth,
                      ec=border,
                      color=facecolor,
                      alpha=None,
                      zorder=zorder,
                  )
              else:
                  tr_x = x[(x >= hdi_[0]) & (x <= hdi_[1])]
                  tr_y_min = np.ones_like(tr_x) * y_min
                  tr_y_max = y_max[(x >= hdi_[0]) & (x <= hdi_[1])]
                  y_min = np.ones_like(x) * y_min
                  if ridgeplot_truncate:
                      ax.plot(
                          tr_x,
                          tr_y_max,
                          "-",
                          linewidth=linewidth,
                          color=border,
                          zorder=zorder,
                      )
                      ax.plot(
                          tr_x,
                          tr_y_min,
                          "-",
                          linewidth=linewidth,
                          color=border,
                          zorder=zorder,
                      )
                  else:
                      ax.plot(
                          x,
                          y_max,
                          "-",
                          linewidth=linewidth,
                          color=border,
                          zorder=zorder,
                      )
                      ax.plot(
                          x,
                          y_min,
                          "-",
                          linewidth=linewidth,
                          color=border,
                          zorder=zorder,
                      )
                  ax.fill_between(
                      tr_x,
                      tr_y_max,
                      tr_y_min,
                      alpha=alpha,
                      color=color,
                      zorder=zorder,
                  )
  
              if ridgeplot_quantiles is not None:
                  quantiles = [
                      x[np.sum(y_q < quant)]
                      for quant in ridgeplot_quantiles
                  ]
                  ax.plot(
                      quantiles,
                      np.ones_like(quantiles) * y_min[0],
                      "d",
                      mfc=border,
                      mec=border,
                      ms=markersize,
                  )
              zorder -= 1
      return ax
  
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 6 for calling the PlotHandler obj's underlying member method code with example usage: obj.ridgeplot(hdi_prob, mult, linewidth, markersize, alpha, ridgeplot_kind, ridgeplot_truncate, ridgeplot_quantiles, ax) and returns: ax