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: Scatter chart.
  
  Note:
      To change the orientation set x_axis_type or y_axis_type
      argument of the Chart object.
  
  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.
      size_column (str, optional): Column name of numerical values
          to plot on the size dimension.
      color_column (str, optional): Column name to group by on
          the color dimension.
      color_order (list, optional):
          List of values within the 'color_column' for
              specific color sort.
      categorical_order_by (str or array-like, optional):
          Dimension for ordering the categorical axis. Default 'count'.
          - 'count': Order categorical axis by the count of values.
          - '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.
      alpha (float): Alpha value.
      marker (str): marker type. Valid types:
          'asterisk', 'circle', 'circle_cross', 'circle_x', 'cross',
          'diamond', 'diamond_cross', 'hex', 'inverted_triangle',
          'square', 'square_x', 'square_cross', 'triangle',
          'x', '*', '+', 'o', 'ox', 'o+'
docstr_tok: ["Scatter","chart",".","Note",":","To","change","the","orientation","set","x_axis_type","or","y_axis_type","argument","of","the","Chart","object",".","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",".","size_column","(","str",",","optional",")",":","Column","name","of","numerical","values","to","plot","on","the","size","dimension",".","color_column","(","str",",","optional",")",":","Column","name","to","group","by","on","the","color","dimension",".","color_order","(","list",",","optional",")",":","List","of","values","within","the","'color_column","'","for","specific","color","sort",".","categorical_order_by","(","str","or","array-like",",","optional",")",":","Dimension","for","ordering","the","categorical","axis",".","Default","'count","'",".","-","'count","'",":","Order","categorical","axis","by","the","count","of","values",".","-","'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",".","alpha","(","float",")",":","Alpha","value",".","marker","(","str",")",":","marker","type",".","Valid","types",":","'asterisk","'",",","'circle","'",",","'circle_cross","'",",","'circle_x","'",",","'cross","'",",","'diamond","'",",","'diamond_cross","'",",","'hex","'",",","'inverted_triangle","'",",","'square","'",",","'square_x","'",",","'square_cross","'",",","'triangle","'",",","'","x","'",",","'","*","'",",","'+","'",",","'","o","'",",","'ox","'",",","'","o+","'"]
code: def scatter(
      self,
      data_frame,
      categorical_columns,
      numeric_column,
      size_column=None,
      color_column=None,
      color_order=None,
      categorical_order_by="count",
      categorical_order_ascending=False,
      alpha=1.0,
      marker="circle",
  ):
      """Scatter chart.
  
      Note:
          To change the orientation set x_axis_type or y_axis_type
          argument of the Chart object.
  
      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.
          size_column (str, optional): Column name of numerical values
              to plot on the size dimension.
          color_column (str, optional): Column name to group by on
              the color dimension.
          color_order (list, optional):
              List of values within the 'color_column' for
                  specific color sort.
          categorical_order_by (str or array-like, optional):
              Dimension for ordering the categorical axis. Default 'count'.
              - 'count': Order categorical axis by the count of values.
              - '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.
          alpha (float): Alpha value.
          marker (str): marker type. Valid types:
              'asterisk', 'circle', 'circle_cross', 'circle_x', 'cross',
              'diamond', 'diamond_cross', 'hex', 'inverted_triangle',
              'square', 'square_x', 'square_cross', 'triangle',
              'x', '*', '+', 'o', 'ox', 'o+'
      """
      vertical = self._chart.axes._vertical
  
      if size_column is None:
          size_column = 15
  
      axis_factors = data_frame.groupby(categorical_columns).size()
  
      is_string = isinstance(categorical_order_by, str)
      order_length = getattr(categorical_order_by, "__len__", None)
      if is_string and categorical_order_by == "labels":
          axis_factors = axis_factors.sort_index(
              ascending=categorical_order_ascending
          ).index
      elif is_string and categorical_order_by == "count":
          axis_factors = axis_factors.sort_values(
              ascending=categorical_order_ascending
          ).index
      # User-specified order.
      elif not is_string and order_length is not None:
          axis_factors = categorical_order_by
      else:
          raise ValueError(
              """Must be 'count', 'labels', or a list of values."""
          )
  
      colors, color_values = self._get_color_and_order(
          data_frame, color_column, color_order
      )
      # Apply factors to the axis.
      self._set_categorical_axis_default_factors(vertical, axis_factors)
  
      for color_value, color in zip(color_values, colors):
          if color_column is None:  # Single series
              color_value = numeric_column
              legend = None
              sliced_data = data_frame
          else:
              legend = str(color_value)
              sliced_data = data_frame[
                  data_frame[color_column] == color_value
              ]
          # Filter to only relevant columns.
          data_factors = sliced_data.set_index(
              categorical_columns
          ).index
          sliced_data = sliced_data[
              [
                  col
                  for col in sliced_data.columns
                  if col in (numeric_column, size_column)
              ]
          ]
          source = self._named_column_data_source(
              sliced_data, series_name=color_value
          )
          source.add(data_factors, "factors")
  
          if vertical:
              x_value, y_value = "factors", numeric_column
          else:
              y_value, x_value = "factors", numeric_column
  
          self._plot_with_legend(
              self._chart.figure.scatter,
              legend_label=legend,
              x=x_value,
              y=y_value,
              size=size_column,
              fill_color=color,
              line_color=color,
              source=source,
              marker=marker,
              alpha=alpha,
          )
  
      # Set legend defaults if there are multiple series.
      if color_column is not None:
          self._chart.style._apply_settings("legend")
  
      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 15 for calling the PlotMixedTypeXY obj's underlying member method code with example usage: obj.scatter(data_frame, categorical_columns, numeric_column, size_column, color_column, color_order, categorical_order_by, categorical_order_ascending, alpha, marker) and returns: self