def edge_scatters_by_label()

in identity-resolution/notebooks/identity-graph/nepytune/drawing.py [0:0]


def edge_scatters_by_label(graph, widths=None, colors=None, dashes=None, opacity=None):
    if not colors:
        colors = {}
    if not dashes:
        dashes = {}
    if not widths:
        widths = {}
    if not opacity:
        opacity = {}

    for label, edges in group_by_label(graph, type_="edges"):
        edge_x = []
        edge_y = []

        for edge in edges:
            x0, y0 = graph.node[edge[0]]["pos"]
            x1, y1 = graph.node[edge[1]]["pos"]
            edge_x.append(x0)
            edge_x.append(x1)
            edge_x.append(None)
            edge_y.append(y0)
            edge_y.append(y1)
            edge_y.append(None)

        yield go.Scatter(
            x=edge_x, y=edge_y,
            line=dict(
                width=widths.get(label, 0.5),
                color=colors.get(label, '#888'),
                dash=dashes.get(label, "solid")
            ),
            opacity=opacity.get(label, 1),
            name=label,
            hoverinfo="none",
            mode="lines",
        )