class_docstr: Plot functions for mixed type x & y axes:
  
  Methods:
      - bar
      - bar_stacked
      - lollipop
      - parallel
class_docstr_tok: ["Plot","functions","for","mixed","type","x","&","y","axes",":","Methods",":","-","bar","-","bar_stacked","-","lollipop","-","parallel"]
docstr: Plot stacked bar chart.
  
  Note:
      - To change the orientation set x_axis_type or y_axis_type
      argument of the Chart object.
      - Stacked numeric values must be all positive or all negative.
      To plot both positive and negative values on the same chart
      call this method twice. Once for the positive values and
      once for the negative values.
  
  Args:
      data_frame (pandas.DataFrame): Data source for the plot.
      categorical_columns (str or list): Column name to plot on
          the categorical axis.
      numeric_column (str): Column name to plot on the numerical axis.
      stack_column (str): Column name to group by on the stack dimension.
      normalize (bool, optional): Normalize numeric dimension for
          100% stacked bars. Default False.
      stack_order (list, optional): List of values within the
          'stack_column' dimension for specific stack sort.
      categorical_order_by (str or array-like, optional):
          Dimension for ordering the categorical axis. Default 'values'.
          - 'values': Order categorical axis by the numerical
              axis values. Default.
          - 'labels': Order categorical axis by the categorical labels.
          - array-like object (list, tuple, np.array): New labels
              to conform the categorical axis to.
      categorical_order_ascending (bool, optional): Sort order
          of the categorical axis. Default False.
docstr_tok: ["Plot","stacked","bar","chart",".","Note",":","-","To","change","the","orientation","set","x_axis_type","or","y_axis_type","argument","of","the","Chart","object",".","-","Stacked","numeric","values","must","be","all","positive","or","all","negative",".","To","plot","both","positive","and","negative","values","on","the","same","chart","call","this","method","twice",".","Once","for","the","positive","values","and","once","for","the","negative","values",".","Args",":","data_frame","(","pandas.DataFrame",")",":","Data","source","for","the","plot",".","categorical_columns","(","str","or","list",")",":","Column","name","to","plot","on","the","categorical","axis",".","numeric_column","(","str",")",":","Column","name","to","plot","on","the","numerical","axis",".","stack_column","(","str",")",":","Column","name","to","group","by","on","the","stack","dimension",".","normalize","(","bool",",","optional",")",":","Normalize","numeric","dimension","for","100","%","stacked","bars",".","Default","False",".","stack_order","(","list",",","optional",")",":","List","of","values","within","the","'stack_column","'","dimension","for","specific","stack","sort",".","categorical_order_by","(","str","or","array-like",",","optional",")",":","Dimension","for","ordering","the","categorical","axis",".","Default","'values","'",".","-","'values","'",":","Order","categorical","axis","by","the","numerical","axis","values",".","Default",".","-","'labels","'",":","Order","categorical","axis","by","the","categorical","labels",".","-","array-like","object","(","list",",","tuple",",","np.array",")",":","New","labels","to","conform","the","categorical","axis","to",".","categorical_order_ascending","(","bool",",","optional",")",":","Sort","order","of","the","categorical","axis",".","Default","False","."]
code: def bar_stacked(
      self,
      data_frame,
      categorical_columns,
      numeric_column,
      stack_column,
      normalize=False,
      stack_order=None,
      categorical_order_by="values",
      categorical_order_ascending=False,
  ):
      """Plot stacked bar chart.
  
      Note:
          - To change the orientation set x_axis_type or y_axis_type
          argument of the Chart object.
          - Stacked numeric values must be all positive or all negative.
          To plot both positive and negative values on the same chart
          call this method twice. Once for the positive values and
          once for the negative values.
  
      Args:
          data_frame (pandas.DataFrame): Data source for the plot.
          categorical_columns (str or list): Column name to plot on
              the categorical axis.
          numeric_column (str): Column name to plot on the numerical axis.
          stack_column (str): Column name to group by on the stack dimension.
          normalize (bool, optional): Normalize numeric dimension for
              100% stacked bars. Default False.
          stack_order (list, optional): List of values within the
              'stack_column' dimension for specific stack sort.
          categorical_order_by (str or array-like, optional):
              Dimension for ordering the categorical axis. Default 'values'.
              - 'values': Order categorical axis by the numerical
                  axis values. Default.
              - 'labels': Order categorical axis by the categorical labels.
              - array-like object (list, tuple, np.array): New labels
                  to conform the categorical axis to.
          categorical_order_ascending (bool, optional): Sort order
              of the categorical axis. Default False.
      """
  
      vertical = self._chart.axes._vertical
  
      source, factors, stack_values = self._construct_source(
          data_frame,
          categorical_columns,
          numeric_column,
          stack_column,
          normalize=normalize,
          categorical_order_by=categorical_order_by,
          categorical_order_ascending=categorical_order_ascending,
      )
  
      colors, _ = self._get_color_and_order(
          data_frame, stack_column, stack_order
      )
      if stack_column is None:
          colors = colors[0]
  
      self._set_categorical_axis_default_factors(vertical, factors)
      self._set_categorical_axis_default_range(
          vertical, data_frame, numeric_column
      )
      bar_width = self._get_bar_width(factors)
      # Set numeric axis format to percentages.
      if normalize:
          if vertical:
              self._chart.axes.set_yaxis_tick_format("0%")
          else:
              self._chart.axes.set_xaxis_tick_format("0%")
  
      if stack_order is not None:
          if not set(stack_values).issubset(set(stack_order)):
              raise ValueError(
                  """Stack order must include all distinct
                                      values of the stack column `%s`
                                   """
                  % (stack_column)
              )
          stack_values = stack_order
  
      legend = [str(value) for value in stack_values]
  
      if vertical:
          self._plot_with_legend(
              self._chart.figure.vbar_stack,
              legend_label=legend,
              stackers=stack_values,
              x="factors",
              width=bar_width,
              line_color="white",
              source=source,
              fill_color=colors,
          )
  
      else:
          self._plot_with_legend(
              self._chart.figure.hbar_stack,
              legend_label=legend,
              stackers=stack_values,
              y="factors",
              height=bar_width,
              line_color="white",
              source=source,
              fill_color=colors,
          )
  
      self._chart.style._apply_settings("legend")
      # Reverse order of vertical legends to ensure that the order
      # is consistent with the stack order.
      self._chart._reverse_vertical_legend = True
  
      return self._chart
  
imports: import bokeh
  import pandas
  import numpy
  from chartify._core.colors import Color, color_palettes
  from chartify._core.axes import NumericalYMixin, NumericalXMixin
  from scipy.stats import gaussian_kde
label_desc: Use image node_id 12 for calling the PlotMixedTypeXY obj's underlying member method code with example usage: obj.bar_stacked(data_frame, categorical_columns, numeric_column, stack_column, normalize, stack_order, categorical_order_by, categorical_order_ascending) and returns: self