Open
Description
Hi,
I have been trying to plot multigraphs using netgraph but it seems it is not supported. Here is a minimal example and error message:
# Simple example of a graph with two nodes and two parallel edges between them
G = nx.MultiDiGraph()
G.add_nodes_from(range(2))
G.add_edge(0, 1, key=0, weight=1)
G.add_edge(0, 1, key=1, weight=1)
# plot the graph using netgraph
Graph(G,node_labels={0:'a',1:'b'},edge_layout='curved',arrows=True)
Error Trace:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/var/folders/8t/nc0dxp394llg8dc047hmbqsh0000gn/T/ipykernel_54472/3976304237.py in <module>
5 G.add_edge(0, 1, key=1, weight=1)
6 # plot the graph using netgraph
----> 7 Graph(G,node_labels={0:'a',1:'b'},edge_layout='curved',arrows=True)
/opt/anaconda3/lib/python3.9/site-packages/netgraph/_main.py in __init__(self, graph, edge_cmap, *args, **kwargs)
1352 kwargs.setdefault('node_zorder', node_zorder)
1353
-> 1354 super().__init__(edges, *args, **kwargs)
1355
1356
/opt/anaconda3/lib/python3.9/site-packages/netgraph/_main.py in __init__(self, edges, nodes, node_layout, node_layout_kwargs, node_shape, node_size, node_edge_width, node_color, node_edge_color, node_alpha, node_zorder, node_labels, node_label_offset, node_label_fontdict, edge_width, edge_color, edge_alpha, edge_zorder, arrows, edge_layout, edge_layout_kwargs, edge_labels, edge_label_position, edge_label_rotate, edge_label_fontdict, origin, scale, prettify, ax, *args, **kwargs)
267 *args, **kwargs
268 ):
--> 269 self.edges = _parse_edge_list(edges)
270
271 self.nodes = self._initialize_nodes(nodes)
/opt/anaconda3/lib/python3.9/site-packages/netgraph/_parser.py in _parse_edge_list(edges)
138 """Ensures that the type of edges is a list, and each edge is a 2-tuple."""
139 # Edge list may be an array, or a list of lists. We want a list of tuples.
--> 140 return [(source, target) for (source, target) in edges]
141
142
/opt/anaconda3/lib/python3.9/site-packages/netgraph/_parser.py in <listcomp>(.0)
138 """Ensures that the type of edges is a list, and each edge is a 2-tuple."""
139 # Edge list may be an array, or a list of lists. We want a list of tuples.
--> 140 return [(source, target) for (source, target) in edges]
141
142
ValueError: too many values to unpack (expected 2)