def scatter(self, *args: Any, **kwargs: Any) -> GlyphRenderer:
    ' Creates a scatter plot of the given x and y items.\n\n        Args:\n            x (str or seq[float]) : values or field names of center x coordinates\n\n            y (str or seq[float]) : values or field names of center y coordinates\n\n            size (str or list[float]) : values or field names of sizes in |screen units|\n\n            marker (str, or list[str]): values or field names of marker types\n\n            color (color value, optional): shorthand to set both fill and line color\n\n            source (:class:`~bokeh.models.sources.ColumnDataSource`) : a user-supplied data source.\n                An attempt will be made to convert the object to :class:`~bokeh.models.sources.ColumnDataSource`\n                if needed. If none is supplied, one is created for the user automatically.\n\n            **kwargs: |line properties| and |fill properties|\n\n        Examples:\n\n            >>> p.scatter([1,2,3],[4,5,6], marker="square", fill_color="red")\n            >>> p.scatter("data1", "data2", marker="mtype", source=data_source, ...)\n\n        .. note::\n            When passing ``marker="circle"`` it is also possible to supply a\n            ``radius`` value in |data units|. When configuring marker type\n            from a data source column, *all* markers including circles may only\n            be configured with ``size`` in |screen units|.\n\n        '
    marker_type = kwargs.pop('marker', 'circle')
    if (isinstance(marker_type, str) and (marker_type in _MARKER_SHORTCUTS)):
        marker_type = _MARKER_SHORTCUTS[marker_type]
    if ((marker_type == 'circle') and ('radius' in kwargs)):
        return self.circle(*args, **kwargs)
    else:
        return self._scatter(*args, marker=marker_type, **kwargs)
Creates a scatter plot of the given x and y items.

Args:
    x (str or seq[float]) : values or field names of center x coordinates

    y (str or seq[float]) : values or field names of center y coordinates

    size (str or list[float]) : values or field names of sizes in |screen units|

    marker (str, or list[str]): values or field names of marker types

    color (color value, optional): shorthand to set both fill and line color

    source (:class:`~bokeh.models.sources.ColumnDataSource`) : a user-supplied data source.
        An attempt will be made to convert the object to :class:`~bokeh.models.sources.ColumnDataSource`
        if needed. If none is supplied, one is created for the user automatically.

    **kwargs: |line properties| and |fill properties|

Examples:

    >>> p.scatter([1,2,3],[4,5,6], marker="square", fill_color="red")
    >>> p.scatter("data1", "data2", marker="mtype", source=data_source, ...)

.. note::
    When passing ``marker="circle"`` it is also possible to supply a
    ``radius`` value in |data units|. When configuring marker type
    from a data source column, *all* markers including circles may only
    be configured with ``size`` in |screen units|.
def scatter(self, *args: Any, **kwargs: Any) -> GlyphRenderer:
    ' Creates a scatter plot of the given x and y items.\n\n        Args:\n            x (str or seq[float]) : values or field names of center x coordinates\n\n            y (str or seq[float]) : values or field names of center y coordinates\n\n            size (str or list[float]) : values or field names of sizes in |screen units|\n\n            marker (str, or list[str]): values or field names of marker types\n\n            color (color value, optional): shorthand to set both fill and line color\n\n            source (:class:`~bokeh.models.sources.ColumnDataSource`) : a user-supplied data source.\n                An attempt will be made to convert the object to :class:`~bokeh.models.sources.ColumnDataSource`\n                if needed. If none is supplied, one is created for the user automatically.\n\n            **kwargs: |line properties| and |fill properties|\n\n        Examples:\n\n            >>> p.scatter([1,2,3],[4,5,6], marker="square", fill_color="red")\n            >>> p.scatter("data1", "data2", marker="mtype", source=data_source, ...)\n\n        .. note::\n            When passing ``marker="circle"`` it is also possible to supply a\n            ``radius`` value in |data units|. When configuring marker type\n            from a data source column, *all* markers including circles may only\n            be configured with ``size`` in |screen units|.\n\n        '
    marker_type = kwargs.pop('marker', 'circle')
    if (isinstance(marker_type, str) and (marker_type in _MARKER_SHORTCUTS)):
        marker_type = _MARKER_SHORTCUTS[marker_type]
    if ((marker_type == 'circle') and ('radius' in kwargs)):
        return self.circle(*args, **kwargs)
    else:
        return self._scatter(*args, marker=marker_type, **kwargs)