diff options
author | Daniel Haden <haden.daniel@gmail.com> | 2021-11-03 20:30:14 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-03 22:30:14 -0400 |
commit | 11db137b93f8f0b605cb8cefbeab21720348b9f7 (patch) | |
tree | 18874d3364105da312669843f92a507bad735dea /networkx/drawing | |
parent | e1563f473b507d177889a1ca684517572b100882 (diff) | |
download | networkx-11db137b93f8f0b605cb8cefbeab21720348b9f7.tar.gz |
Bugfix for issue 5123 (#5153)
* fixed bug in multipartite_layout so subset labels can be non-numeric
* Added non-numeric partition label test to test_multipartite_layout.
* moved multipartite non-numeric partition label test outside of main test class
Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
Diffstat (limited to 'networkx/drawing')
-rw-r--r-- | networkx/drawing/layout.py | 2 | ||||
-rw-r--r-- | networkx/drawing/tests/test_layout.py | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/networkx/drawing/layout.py b/networkx/drawing/layout.py index ca0f0437..c16446e2 100644 --- a/networkx/drawing/layout.py +++ b/networkx/drawing/layout.py @@ -1092,7 +1092,7 @@ def multipartite_layout(G, subset_key="subset", align="vertical", scale=1, cente nodes = [] width = len(layers) - for i, layer in layers.items(): + for i, layer in enumerate(layers.values()): height = len(layer) xs = np.repeat(i, height) ys = np.arange(0, height, dtype=float) diff --git a/networkx/drawing/tests/test_layout.py b/networkx/drawing/tests/test_layout.py index 183c9fbc..ab973088 100644 --- a/networkx/drawing/tests/test_layout.py +++ b/networkx/drawing/tests/test_layout.py @@ -412,3 +412,15 @@ class TestLayout: } for k, v in expectation.items(): assert (s_vpos[k] == v).all() + + +def test_multipartite_layout_nonnumeric_partition_labels(): + """See gh-5123.""" + G = nx.Graph() + G.add_node(0, subset="s0") + G.add_node(1, subset="s0") + G.add_node(2, subset="s1") + G.add_node(3, subset="s1") + G.add_edges_from([(0, 2), (0, 3), (1, 2)]) + pos = nx.multipartite_layout(G) + assert len(pos) == len(G) |