Generate data for mapper graph visualization and annotation.

    Parameters
    ----------
    simplicial_complex : dict
        Simplicial complex is the output from the KeplerMapper `map` method.
    
    Returns
    -------
    the graph dictionary in a json representation, the mapper summary
    and the node_distribution

    Example
    -------

    >>> kmgraph,  mapper_summary, n_distribution = get_mapper_graph(simplicial_complex)

def get_mapper_graph(
    simplicial_complex,
    color_function=None,
    color_function_name=None,
    colorscale=None,
    custom_tooltips=None,
    custom_meta=None,
    X=None,
    X_names=None,
    lens=None,
    lens_names=None,
):
    """Generate data for mapper graph visualization and annotation.

    Parameters
    ----------
    simplicial_complex : dict
        Simplicial complex is the output from the KeplerMapper `map` method.
    
    Returns
    -------
    the graph dictionary in a json representation, the mapper summary
    and the node_distribution

    Example
    -------

    >>> kmgraph,  mapper_summary, n_distribution = get_mapper_graph(simplicial_complex)

    """

    if not colorscale:
        colorscale = default_colorscale

    if not len(simplicial_complex["nodes"]) > 0:
        raise Exception(
            "A mapper graph should have more than 0 nodes. This might be because your clustering algorithm might be too sensitive and be classifying all points as noise."
        )

    color_function = init_color_function(simplicial_complex, color_function)

    if X_names is None:
        X_names = []

    if lens_names is None:
        lens_names = []

    json_graph = scomplex_to_graph(
        simplicial_complex,
        color_function,
        X,
        X_names,
        lens,
        lens_names,
        custom_tooltips,
        colorscale=colorscale,
    )
    colorf_distribution = graph_data_distribution(
        simplicial_complex, color_function, colorscale
    )
    mapper_summary = format_meta(
        simplicial_complex,
        color_function_name=color_function_name,
        custom_meta=custom_meta,
    )

    return json_graph, mapper_summary, colorf_distribution