Fix SubFigure wspace/hspace None defaulting to subplot rc spacing#32080
Fix SubFigure wspace/hspace None defaulting to subplot rc spacing#32080Fstarnb wants to merge 1 commit into
Conversation
Without a layout engine, Figure.subfigures documents that unspecified wspace/hspace is zero. GridSpec still substitutes figure.subplot.* rc defaults (0.2) for None, so setting only wspace applied a vertical gap from the default hspace (and vice versa). Coerce missing spacings to 0.0 when no layout engine is active. Fixes matplotlib#32076.
|
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. We also ask that you please finish addressing any review comments on this PR and wait for it to be merged (or closed) before opening a new one, as it can be a valuable learning experience to go through the review process. You can also join us on discourse chat for real-time discussion. For details on testing, writing docs, and our review process, please see the developer guide. We strive to be a welcoming and open project. Please follow our Code of Conduct. |
|
This PR shows indications of having been generated by AI. Please check it against our policy and, if it complies, update the PR summary to use our template. |
|
⏰ This pull request might be automatically closed in two weeks from now. Thank you for your contribution to Matplotlib and for the effort you have put into this PR. This pull request does not yet meet the quality and clarity standards needed for an effective review. Project maintainers have limited time for code reviews, and our goal is to prioritize well-prepared contributions to keep Matplotlib maintainable. Matplotlib maintainers cannot provide one-to-one guidance on this PR. However, if you ask focused, well-researched questions, a community member may be willing to help. 💬 To increase the chance of a productive review:
As the author, you are responsible for driving this PR, which entails doing necessary background research as well as presenting its context and your thought process. If you are a new contributor, or do not know how to fulfill these requirements, we recommend that you familiarize yourself with Matplotlib's development conventions or engage with the community via our Discourse or one of our meetings before submitting code. If you substantially improve this PR within two weeks, leave a comment and a team member may remove the |
Description
Without a layout engine,
Figure.subfiguresdocuments that unspecifiedwspace/hspaceis zero.GridSpecstill substitutesfigure.subplot.{w,h}spacerc defaults (typically0.2) when givenNone, so:subfigures(..., wspace=0.2, hspace=None)incorrectly added a vertical gapsubfigures(..., wspace=None, hspace=0.2)incorrectly added a horizontal gapThis is a regression from #25960 (confirmed in #32076).
Fix: when no layout engine is active, coerce missing
wspace/hspaceto0.0before constructing theGridSpec.Related Issue
Fixes #32076
How Has This Been Tested?
Local verification (Agg, matplotlib 3.10.x / main sources):
wspace=0.2, hspace=None→ subfigure height ≈ 181.82 (gap from defaulthspace=0.2)None→ tiled (0, 200, 300, 200) etc.wspace→ horizontal spacing onlyhspace→ vertical spacing onlytest_subfigures_wspace_hspacestill passestest_subfigures_partial_spacing_none_is_zerocovers the three cases aboveChecklist