Plots the data in `x` on the X axis and the data in `y` on the Y axis
    in a 2d box and whiskers plot, and returns the resulting Plot object.
    
    The function x as SArray of dtype str and y as SArray of dtype: int, float.

    Parameters
    ----------
    x : SArray
      The data to plot on the X axis of the box and whiskers plot. 
      Must be an SArray with dtype string.
    y : SArray
      The data to plot on the Y axis of the box and whiskers plot. 
      Must be numeric (int/float) 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 box and whiskers plot.

    Examples
    --------
    Make a box and whiskers plot.

    >>> bp = turicreate.visualization.box_plot(tc.SArray(['a','b','c','a','a']),tc.SArray([4.0,3.25,2.1,2.0,1.0]))

def box_plot(x, y, xlabel=LABEL_DEFAULT, ylabel=LABEL_DEFAULT, title=LABEL_DEFAULT):
    """
    Plots the data in `x` on the X axis and the data in `y` on the Y axis
    in a 2d box and whiskers plot, and returns the resulting Plot object.
    
    The function x as SArray of dtype str and y as SArray of dtype: int, float.

    Parameters
    ----------
    x : SArray
      The data to plot on the X axis of the box and whiskers plot. 
      Must be an SArray with dtype string.
    y : SArray
      The data to plot on the Y axis of the box and whiskers plot. 
      Must be numeric (int/float) 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 box and whiskers plot.

    Examples
    --------
    Make a box and whiskers plot.

    >>> bp = turicreate.visualization.box_plot(tc.SArray(['a','b','c','a','a']),tc.SArray([4.0,3.25,2.1,2.0,1.0]))
    """
    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 not in [int, float]):
        raise ValueError("turicreate.visualization.box_plot supports " + 
            "x as SArray of dtype str and y as SArray of dtype: int, float." +
            "\nExample: turicreate.visualization.box_plot(tc.SArray(['a','b','c','a','a']),tc.SArray([4.0,3.25,2.1,2.0,1.0]))")
    title = _get_title(title)
    plt_ref = tc.extensions.plot_boxes_and_whiskers(x, y, 
      xlabel, ylabel, title)
    return Plot(plt_ref)