def scatter_matrix(frame, c=None, s=None, figsize=None, dpi=<NUM_LIT>, **kwds):
if kwds:<EOL><INDENT>warnings.warn(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>".format(list(kwds.keys()))<EOL>)<EOL><DEDENT>cols = [<EOL>col<EOL>for col in frame.columns<EOL>if col not in [c, s]<EOL>if infer_vegalite_type(frame[col], ordinal_threshold=<NUM_LIT:0>) == "<STR_LIT>"<EOL>]<EOL>spec = {<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": {"<STR_LIT>": cols, "<STR_LIT>": cols[::-<NUM_LIT:1>]},<EOL>"<STR_LIT>": {<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": {<EOL>"<STR_LIT>": {<EOL>"<STR_LIT:type>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>},<EOL>"<STR_LIT>": {<EOL>"<STR_LIT:type>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>},<EOL>},<EOL>"<STR_LIT>": {<EOL>"<STR_LIT:x>": {"<STR_LIT>": {"<STR_LIT>": "<STR_LIT>"}, "<STR_LIT:type>": "<STR_LIT>"},<EOL>"<STR_LIT:y>": {"<STR_LIT>": {"<STR_LIT>": "<STR_LIT>"}, "<STR_LIT:type>": "<STR_LIT>"},<EOL>"<STR_LIT>": {"<STR_LIT>": {"<STR_LIT>": "<STR_LIT>"}, "<STR_LIT:value>": "<STR_LIT>"},<EOL>},<EOL>},<EOL>}<EOL>if figsize is not None:<EOL><INDENT>width_inches, height_inches = figsize<EOL>spec["<STR_LIT>"]["<STR_LIT:width>"] = <NUM_LIT> * dpi * width_inches / len(cols)<EOL>spec["<STR_LIT>"]["<STR_LIT>"] = <NUM_LIT> * dpi * height_inches / len(cols)<EOL><DEDENT>if s is not None:<EOL><INDENT>spec["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT:size>"] = {<EOL>"<STR_LIT>": s, "<STR_LIT:type>": infer_vegalite_type(frame[s])<EOL>}<EOL><DEDENT>cond = spec["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"]["<STR_LIT>"]<EOL>if c is None:<EOL><INDENT>cond["<STR_LIT:value>"] = "<STR_LIT>"<EOL><DEDENT>else:<EOL><INDENT>cond["<STR_LIT>"] = c<EOL>cond["<STR_LIT:type>"] = infer_vegalite_type(frame[c])<EOL><DEDENT>chart = alt.Chart().from_dict(spec)<EOL>chart.data = frame<EOL>return chart<EOL>
Draw a matrix of scatter plots.

    The result is an interactive pan/zoomable plot, with linked-brushing
    enabled by holding the shift key.

    Parameters
    ----------
    frame : DataFrame
        The dataframe for which to draw the scatter matrix.
    c : string (optional)
        If specified, the name of the column to be used to determine the
        color of each point.
    s : string (optional)
        If specified, the name of the column to be used to determine the
        size of each point,
    figsize : tuple (optional)
        A length-2 tuple speficying the size of the figure in inches
    dpi : float (default=72)
        The dots (i.e. pixels) per inch used to convert the figure size from
        inches to pixels.

    Returns
    -------
    chart: alt.Chart object
        The alt.Chart representation of the plot.

    See Also
    --------
    pandas.plotting.scatter_matrix : matplotlib version of this routine