I have a Graph with a lot of edges and nodes. I want to plot the edges width proportional to some weight array.
I found a code for doing this and the output returns very quick. But it ony shows all edges with the same width.
the graph object looks like this:
edge_trace = go.Scatter ( x = edge_x, y=edge_y, line = dict(width = 0.8, color="#fff"), hoverinfo = "none", mode = "lines)
node_trace =
x=node_x, y=node_y,
mode='markers',
text = " ",
textposition ="middle left",
hoverinfo='text',
marker=dict(
showscale=False,
colorscale='RdBu',
reversescale=True,
color=[],
size=12,
colorbar=dict(
thickness=15,
title='Node Connections',
xanchor='left',
titleside='right'
),
line_width=2))
and thefigure object looks like
fig = go.Figure(data = [edge_trace,node_trace], layout = .....)
this doesnβt draw the weighted edges. So I add a loop selecting a weight from weight array, a proportional width named width_ and do this:
fig.add_trace(go.Scatter(x=X,y=Y), line = dict(width = width_, color = color_) )
but it draws above the previus graph and makes it slow.
Is there any solution? How can I pass a width array to edge_trace ?
Also I would like that the name of every edge shows to the left, now it only shows passing the mouse above them with a box as image