'How to show text information on the lines of Plotly Scatter3d?
I have made a network (Graph of networkX) and want to use plotly.graph_objects for visualization. In the edge of the graph, I have added some information (str type).
For example, information is stored as below. G[Node1][Node2]['info'] = "ABC"
And Now I want to show this information in the plotly.
previously, I add edge label with matplotlib like this.

But In the plotly Scatter3D, I cannot find how to show this information.
below are my code to show information.
# Example Graph G
G = nx.Graph()
G.add_nodes_from([0, 1, 2, 3])
G.add_edge(1, 2, Type = 'ABC')
G.add_edge(2, 0, Type = '')
G.add_edge(2, 3, Type = '')
# random location for nodes
spring_3D = nx.spring_layout(G, dim=3, seed=18)
x_nodes = [spring_3D[i][0] for i in range(len(G.nodes()))]
y_nodes = [spring_3D[i][1] for i in range(len(G.nodes()))]
z_nodes = [spring_3D[i][2] for i in range(len(G.nodes()))]
# make edge trace
x_edges = []
y_edges = []
z_edges = []
edge_text = []
for edge in G.edges():
x_coords = [spring_3D[edge[0]][0], spring_3D[edge[1]][0], None]
x_edges += x_coords
y_coords = [spring_3D[edge[0]][1], spring_3D[edge[1]][1], None]
y_edges += y_coords
z_coords = [spring_3D[edge[0]][2], spring_3D[edge[1]][2], None]
z_edges += z_coords
edge_text.append(G[edge[0]][edge[1]]['Type'])
trace_edges = go.Scatter3d(x = x_edges,
y = y_edges,
z = z_edges,
mode = 'lines',
line = dict(color='black', width=2),
text = edge_text,
# I use text property, because with trace_nodes,
# text show node labels as exactly what I want
hoverinfo = 'none')
trace_nodes = go.Scatter3d(x=x_nodes,
y=y_nodes,
z=z_nodes,
mode='markers')
layout = go.Layout(title='title',
width=500, height=500,
showlegend=False,
hovermode='closest')
data = [trace_edges, trace_nodes]
fig = go.figure(data=data, layout=layout)
fig.show()
How can I do this task? (info text can be shown permanently like image, or can be shown only when mouse is located on the edge like node text)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
