Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 09e044c

Browse files
committed
Merge pull request #4969 from tacaswell/fix_line2D_remove
FIX: account for None in Line2D.axes setter
2 parents 7ffef32 + 344abbf commit 09e044c

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

lib/matplotlib/lines.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -568,13 +568,14 @@ def get_window_extent(self, renderer):
568568
def axes(self, ax):
569569
# call the set method from the base-class property
570570
Artist.axes.fset(self, ax)
571-
# connect unit-related callbacks
572-
if ax.xaxis is not None:
573-
self._xcid = ax.xaxis.callbacks.connect('units',
574-
self.recache_always)
575-
if ax.yaxis is not None:
576-
self._ycid = ax.yaxis.callbacks.connect('units',
577-
self.recache_always)
571+
if ax is not None:
572+
# connect unit-related callbacks
573+
if ax.xaxis is not None:
574+
self._xcid = ax.xaxis.callbacks.connect('units',
575+
self.recache_always)
576+
if ax.yaxis is not None:
577+
self._ycid = ax.yaxis.callbacks.connect('units',
578+
self.recache_always)
578579

579580
def set_data(self, *args):
580581
"""

lib/matplotlib/tests/test_artist.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,21 +150,27 @@ def test_cull_markers():
150150
def test_remove():
151151
fig, ax = plt.subplots()
152152
im = ax.imshow(np.arange(36).reshape(6, 6))
153+
ln, = ax.plot(range(5))
153154

154155
assert_true(fig.stale)
155156
assert_true(ax.stale)
156157

157158
fig.canvas.draw()
158159
assert_false(fig.stale)
159160
assert_false(ax.stale)
161+
assert_false(ln.stale)
160162

161163
assert_true(im in ax.mouseover_set)
164+
assert_true(ln not in ax.mouseover_set)
162165
assert_true(im.axes is ax)
163166

164167
im.remove()
168+
ln.remove()
169+
170+
for art in [im, ln]:
171+
assert_true(art.axes is None)
172+
assert_true(art.figure is None)
165173

166-
assert_true(im.axes is None)
167-
assert_true(im.figure is None)
168174
assert_true(im not in ax.mouseover_set)
169175
assert_true(fig.stale)
170176
assert_true(ax.stale)

0 commit comments

Comments
 (0)