Define FloatingAxes boundary patch in data coordinates. #20254
Merged
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.
Currently, the boundary patch of FloatingAxes is drawn in "parent axes
data" (rectilinear) coordinates, using manual interpolation as defined
in get_boundary.
Instead, it can be defined in child axes data coordinates, and use
helper_trf + transData
as transform, relying on interpolationmechanisms already present in the transform machinery (for example, this
means that polar FloatingAxes benefit from the more-accurate
transforming of circular arcs).
Likewise, adjust_axes_lim can use normal path methods to get its
extents, rather than relying on manual interpolation. This is the cause
of the baseline image tolerance change: in test_curvelinear3, for
example, we now have exactly
bbox.xmin = bbox.ymin = -10
andbbox.xmax = bbox.ymax = +10
rather than slightly different valuesarising from interpolation and inaccurate transform composition. (But
one can manually check that the changes are all just tiny shifts.)
(On the other hand, I'll likely further change these baselines in the
future, so let's not update the files right now.)
PR Summary
PR Checklist
pytest
passes).flake8
on changed files to check).flake8-docstrings
and runflake8 --docstring-convention=all
).doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).