summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networkx/drawing/nx_pylab.py8
-rw-r--r--networkx/drawing/tests/test_pylab.py10
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)