FIX: do not replace the Axes._children list object#24677
Merged
ksunden merged 1 commit intomatplotlib:mainfrom Dec 9, 2022
Merged
FIX: do not replace the Axes._children list object#24677ksunden merged 1 commit intomatplotlib:mainfrom
ksunden merged 1 commit intomatplotlib:mainfrom
Conversation
Each Artist keeps a reference to `Axes._children.remove` as `art._remove_method`. If we replace the `_children` instance on the Axes with a different list instance the Artists will not be updated and their remove method will refer to the wrong list. This will cause subsequent failures on the next draw because on remove we reset the `art.axes` and `art.figure` to None. xref https://discourse.matplotlib.org/t/host-subplot-and-artist-remove/23374
anntzer
approved these changes
Dec 9, 2022
ksunden
approved these changes
Dec 9, 2022
|
Owee, I'm MrMeeseeks, Look at me. There seem to be a conflict, please backport manually. Here are approximate instructions:
And apply the correct labels and milestones. Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon! Remember to remove the If these instructions are inaccurate, feel free to suggest an improvement. |
rcomer
pushed a commit
to rcomer/matplotlib
that referenced
this pull request
Dec 9, 2022
…list object Manual backport due to conflicts, which were just additional tests in main from matplotlib#23861, so simply removed these.
Merged
6 tasks
tacaswell
added a commit
that referenced
this pull request
Dec 9, 2022
Backport PR #24677 on branch v3.6.x (FIX: do not replace the Axes._children list object)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary
Each Artist keeps a reference to
Axes._children.removeasart._remove_method. If we replace the_childreninstance on the Axes with a different list instance the Artists will not be updated and their remove method will refer to the wrong list. This will cause subsequent failures on the next draw because on remove we reset theart.axesandart.figureto None.xref https://discourse.matplotlib.org/t/host-subplot-and-artist-remove/23374
PR Checklist
Documentation and Tests
pytestpasses)