Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
added properties to legend#30127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thank you for opening your first PR into Matplotlib!
If you have not heard from us in a week or so, please leave a new comment below and that should bring it to our attention. Most of our reviewers are volunteers and sometimes things fall through the cracks.
You can also join uson gitter for real-time discussion.
For details on testing, writing docs, and our review process, please seethe developer guide
We strive to be a welcoming and open project. Please follow ourCode of Conduct.
Please revert the style changes. |
This PR addressesmatplotlib/matplotlib#17775, where the existing legend on a plot was lost after opening and applying changes via the figureoptions dialog.
Why is this change necessary?
Currently, when applying figure options, a new legend is generated without retaining the properties of the original legend (e.g., location, ncols, fontsize, bbox_to_anchor, etc.). This results in the loss of user-defined legend customizations after using the UI.
What problem does it solve?
This fix preserves the current legend's properties (if one exists) and applies them when regenerating the legend. It ensures the UI remains non-destructive and retains layout fidelity.
Reasoning for the implementation:
If an existing legend is found (axes.legend_ is not None), its properties are extracted and reused when calling axes.legend(...) again. The bbox_to_anchor is handled safely by checking its bounds. Finally, the draggable property is reapplied to the new legend.