def scatter(<EOL>self, x, y, c=None, s=None, alpha=None, width=<NUM_LIT>, height=<NUM_LIT>, ax=None, **kwds<EOL>):
df = self._data<EOL>chart = self._plot(<EOL>width=width,<EOL>height=height,<EOL>title=kwds.pop("<STR_LIT:title>", "<STR_LIT>"),<EOL>figsize=kwds.pop("<STR_LIT>", None),<EOL>dpi=kwds.pop("<STR_LIT>", None),<EOL>).mark_point().encode(<EOL>x=_x(x, df, ordinal_threshold=<NUM_LIT:0>), y=_y(y, df, ordinal_threshold=<NUM_LIT:0>)<EOL>)<EOL>if alpha is not None:<EOL><INDENT>assert <NUM_LIT:0> <= alpha <= <NUM_LIT:1><EOL>chart = chart.encode(opacity=alt.value(alpha))<EOL><DEDENT>if c is not None:<EOL><INDENT>chart.encoding["<STR_LIT>"] = {"<STR_LIT>": c, "<STR_LIT:type>": infer_vegalite_type(df[c])}<EOL><DEDENT>if s is not None:<EOL><INDENT>chart.encoding["<STR_LIT:size>"] = {"<STR_LIT>": s, "<STR_LIT:type>": infer_vegalite_type(df[s])}<EOL><DEDENT>if ax is not None:<EOL><INDENT>return ax + chart<EOL><DEDENT>warn_if_keywords_unused("<STR_LIT>", kwds)<EOL>return chart<EOL>
Scatter plot for DataFrame data

        >>> dataframe.vgplot.scatter(x, y)  # doctest: +SKIP

        Parameters
        ----------
        x : string
            the column to use as the x-axis variable.
        y : string
            the column to use as the y-axis variable.
        c : string, optional
            the column to use to encode the color of the points
        s : string, optional
            the column to use to encode the size of the points
        alpha : float, optional
            transparency level, 0 <= alpha <= 1
        width : int, optional
            the width of the plot in pixels
        height : int, optional
            the height of the plot in pixels
        ax: altair.Chart, optional
            chart to be overlayed with this vis (convinience method for `chart1 + chart2`)

        Returns
        -------
        chart : alt.Chart
            altair chart representation