diff options
-rw-r--r-- | networkx/drawing/nx_pylab.py | 8 | ||||
-rw-r--r-- | networkx/drawing/tests/test_pylab.py | 10 |
2 files changed, 14 insertions, 4 deletions
diff --git a/networkx/drawing/nx_pylab.py b/networkx/drawing/nx_pylab.py index e66d0c3a..bbffab22 100644 --- a/networkx/drawing/nx_pylab.py +++ b/networkx/drawing/nx_pylab.py @@ -852,10 +852,10 @@ def draw_networkx_edges( # Draw the edges if use_linecollection: edge_viz_obj = _draw_networkx_edges_line_collection() - # Make sure selfloop edges are also drawn. - edgelist = list(nx.selfloop_edges(G)) - if edgelist: - edge_pos = np.asarray([(pos[e[0]], pos[e[1]]) for e in edgelist]) + # Make sure selfloop edges are also drawn + selfloops_to_draw = [loop for loop in nx.selfloop_edges(G) if loop in edgelist] + if selfloops_to_draw: + edge_pos = np.asarray([(pos[e[0]], pos[e[1]]) for e in selfloops_to_draw]) arrowstyle = "-" _draw_networkx_edges_fancy_arrow_patch() else: diff --git a/networkx/drawing/tests/test_pylab.py b/networkx/drawing/tests/test_pylab.py index d533cebd..cb79708b 100644 --- a/networkx/drawing/tests/test_pylab.py +++ b/networkx/drawing/tests/test_pylab.py @@ -423,3 +423,13 @@ def test_draw_networkx_arrows_default_directed(drawing_func): ) assert ax.patches plt.delaxes(ax) + + +def test_edgelist_kwarg_not_ignored(): + # See gh-4994 + G = nx.path_graph(3) + G.add_edge(0, 0) + fig, ax = plt.subplots() + nx.draw(G, edgelist=[(0, 1), (1, 2)], ax=ax) # Exclude self-loop from edgelist + assert not ax.patches + plt.delaxes(ax) |