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.
This PR introduces a new method, set_figratio, to the matplotlib.figure.Figure class. The purpose of this method is to allow users to set the figure's height and width while optionally preserving the aspect ratio between them. It also supports the ability to use the default figure size values defined in rcParams when one of the dimensions (width or height) is None. This provides a more convenient and flexible approach for adjusting the figure's size based on either fixed dimensions or aspect ratios, addressing a common need for publication-style figure formatting.
Changes made:
Introduced set_figratio to adjust the figure's width and height or aspect ratio.
Added support for None in the figsize parameter, automatically using the default size from rcParams when needed.
Simplified the figure resizing logic based on aspect ratios, ensuring better compatibility with user-defined figure sizes.
Motivation:
This feature was requested in relation to issue #28758, where users wanted the ability to specify a width or height and automatically adjust the other dimension based on a given aspect ratio. This method aims to streamline that process and allow for a simpler workflow when creating figures with publication-specific sizes.
PR checklist
"closes #28758" is in the body of the PR description to link the related issue
new and changed code is tested
Plotting related features are demonstrated in an example
New Features and API Changes are noted with a directive and release note
Documentation complies with general and docstring guidelines