tight_layout() compatibility - #49
Open
johnomotani wants to merge 2 commits into
Open
Conversation
Makes control placement compatible with tight_layout() method or constrained_layout option. Falls back on previous absolute placement method if the gridspec version fails for any reason.
Previously was getting gridspec from current axes. This could result in getting only a subplot, not the top gridspec from the figure. Workaround depends on interal _gridspecs member of Figure, which is not ideal but support for editing existing gridspecs in matplotlib is non-existant.
Contributor
Author
|
The vertical spacing around the controls is set when the sub-grids are created here animatplot/animatplot/animation.py Lines 109 to 111 in df92ada and here animatplot/animatplot/animation.py Lines 167 to 169 in df92ada I guess the problem is that |
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.
This PR attempts to make the animation controls (time-slider and play/pause button) compatible with use of
tight_layout().Previously, calling
tight_layoutcould arrange the animations in a figure, but would not move or take into account the controls, which would end up overlapping the lower part of the animations.This PR seems to work, but requires accessing a private variable of
matplotlib.figure.Figureto get thegridspec, in order to modify it to add the controls. Also modifies a private member ofmatplotlib.gridspec.Gridspecto modify the number of rows. It would be nice ifmatplotlibprovided public methods to access and updategridspecs, but as far as I can see they do not at the moment.One issue is that the current implementation seems to reserve too much whitespace around the controls. It would be nice to find a way to allow
tight_layout()to modify the amount of space above/below the slider.