code: def categorical_heatmap(x, y, xlabel=LABEL_DEFAULT, ylabel=LABEL_DEFAULT, title=LABEL_DEFAULT):
      
      if (not isinstance(x, tc.data_structures.sarray.SArray) or 
          not isinstance(y, tc.data_structures.sarray.SArray) or
          x.dtype != str or y.dtype != str):
          raise ValueError("turicreate.visualization.categorical_heatmap supports " + 
              "SArrays of dtype: str")
      # legit input
      title = _get_title(title)
      plt_ref = tc.extensions.plot_categorical_heatmap(x, y, 
        xlabel, ylabel, title)
      return Plot(plt_ref)
docs: Plots the data in `x` on the X axis and the data in `y` on the Y axis
      in a 2d categorical heatmap, and returns the resulting Plot object.
      
      The function supports SArrays of dtypes str.
  
      Parameters
      ----------
      x : SArray
        The data to plot on the X axis of the categorical heatmap. 
        Must be string SArray
      y : SArray
        The data to plot on the Y axis of the categorical heatmap. 
        Must be string SArray and must be the same length as `x`.
      xlabel : str (optional)
        The text label for the X axis. Defaults to "X".
      ylabel : str (optional)
        The text label for the Y axis. Defaults to "Y".
      title : str (optional)
        The title of the plot. Defaults to LABEL_DEFAULT. If the value is
        LABEL_DEFAULT, the title will be "<xlabel> vs. <ylabel>". If the value
        is None, the title will be omitted. Otherwise, the string passed in as the
        title will be used as the plot title.
  
      Returns
      -------
      out : Plot
        A :class: Plot object that is the categorical heatmap.
  
      Examples
      --------
      Make a categorical heatmap.
  
      >>> x = turicreate.SArray(['1','2','3','4','5'])
      >>> y = turicreate.SArray(['a','b','c','d','e'])
      >>> catheat = turicreate.visualization.categorical_heatmap(x, y)