xgi-org / xgi

CompleX Group Interactions (XGI) is a Python package for higher-order networks.
https://xgi.readthedocs.io
Other
172 stars 27 forks source link

Allow `draw_nodes` to accept an iterable as the first argument. #508

Open nwlandry opened 5 months ago

nwlandry commented 5 months ago

It should be possible to draw nodes without supplying a hypergraph, since if you have the node IDs and corresponding positions, you can draw the nodes. If the user provides a Hypergraph, that allows them to access nodestats and the ability to do a spring layout without providing node positions. I think that one could get around this by selecting the positions at random if the user supplies an iterable of nodes without corresponding positions.

The reason why this could be necessary is that in the draw_bipartite function, when drawing the edge markers, the draw_nodes takes the dual of the hypergraph as an argument, which seems like unnecessary computation.