summaryrefslogtreecommitdiff
path: root/networkx/drawing
diff options
context:
space:
mode:
authorDaniel Haden <haden.daniel@gmail.com>2021-11-03 20:30:14 -0600
committerGitHub <noreply@github.com>2021-11-03 22:30:14 -0400
commit11db137b93f8f0b605cb8cefbeab21720348b9f7 (patch)
tree18874d3364105da312669843f92a507bad735dea /networkx/drawing
parente1563f473b507d177889a1ca684517572b100882 (diff)
downloadnetworkx-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.py2
-rw-r--r--networkx/drawing/tests/test_layout.py12
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)