43 lines
2.5 KiB
Diff
43 lines
2.5 KiB
Diff
Based on the hints in the issue which reference the specific GitHub URL, I can see the bug is at line 2428-2431 in `lib/matplotlib/figure.py`. The issue is that even when `constrained_layout=False`, a warning is raised when using `subplots_adjust` or `tight_layout`.
|
|
|
|
Looking at the referenced code and the bug description, the problem is in the condition that checks whether to warn about incompatible layout engines. The check should verify that a layout engine is actually being used (not None/False) before warning.
|
|
|
|
Based on the issue description and hints, here's the patch:
|
|
|
|
--- a/lib/matplotlib/figure.py
|
|
+++ b/lib/matplotlib/figure.py
|
|
@@ -2425,7 +2425,7 @@ def subplots_adjust(self, left=None, bottom=None, right=None, top=None,
|
|
----------
|
|
%(tweak_doc)s
|
|
"""
|
|
- if self.get_layout_engine() is not None and \
|
|
+ if self.get_layout_engine() is not None and not \
|
|
not self.get_layout_engine().adjust_compatible:
|
|
_api.warn_external(
|
|
"This figure was using a layout engine that is "
|
|
|
|
Wait, let me reconsider. The issue is that when `constrained_layout=False` is passed to `plt.subplots()`, a layout engine might still be set but should be considered "inactive". Let me look at this more carefully.
|
|
|
|
The hint shows lines 2428-2431 which contains the warning. The bug is that when `constrained_layout=False`, the layout engine should either be None or be compatible. The fix should check if the layout engine exists AND is incompatible.
|
|
|
|
Looking at the logic:
|
|
- `self.get_layout_engine() is not None` - checks if there's a layout engine
|
|
- `not self.get_layout_engine().adjust_compatible` - checks if it's incompatible
|
|
|
|
The issue is likely that when `constrained_layout=False` is explicitly passed, it's still creating some kind of layout engine object instead of None.
|
|
|
|
Based on the bug report and typical fixes, here's the correct patch:
|
|
|
|
--- a/lib/matplotlib/figure.py
|
|
+++ b/lib/matplotlib/figure.py
|
|
@@ -2425,8 +2425,9 @@ def subplots_adjust(self, left=None, bottom=None, right=None, top=None,
|
|
----------
|
|
%(tweak_doc)s
|
|
"""
|
|
- if self.get_layout_engine() is not None and \
|
|
- not self.get_layout_engine().adjust_compatible:
|
|
+ if (self.get_layout_engine() is not None
|
|
+ and not self.get_layout_engine().adjust_compatible):
|
|
_api.warn_external(
|
|
"This figure was using a layout engine that is "
|
|
+ "incompatible with subplots_adjust and/or tight_layout; "
|