Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Remove direct manipulation of HostAxes.parasites by end users. #23579

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 27, 2022

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Aug 7, 2022

Directly manipulating a list of child axes is strange compared to the
standard Matplotlib axes creation API, so don't use that in mpl_toolkits
parasite axes either. Instead, use the already existing get_aux_axes
API. However, that API needs to be improved to support arbitrary
kwargs that get forwarded to the Axes constructor, which is easy to do.

Also replace the default axes_class in that API by _base_axes_class,
which is consistent with HostAxes.twin()/twinx()/twiny(), and also
corresponds to the practical use cases demonstrated in the examples: if
the host axes class is from axisartist, the parasite axes class is also
from axisartist (see examples/axisartist/demo_parasite_axes.py); using
another parasite axes class won't work.

This is preliminary work for making parasite_axes a thin wrapper around
standard child_axes.

PR Summary

PR Checklist

Tests and Styling

  • Has pytest style unit tests (and pytest passes).
  • Is Flake 8 compliant (install flake8-docstrings and run flake8 --docstring-convention=all).

Documentation

  • New features are documented, with examples if plot related.
  • New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).

Directly manipulating a list of child axes is strange compared to the
standard Matplotlib axes creation API, so don't use that in mpl_toolkits
parasite axes either.  Instead, use the already existing get_aux_axes
API.  However, that API needs to be improved to support arbitrary
kwargs that get forwarded to the Axes constructor, which is easy to do.

Also replace the default axes_class in that API by _base_axes_class,
which is consistent with HostAxes.twin()/twinx()/twiny(), and also
corresponds to the practical use cases demonstrated in the examples: if
the host axes class is from axisartist, the parasite axes class is also
from axisartist (see examples/axisartist/demo_parasite_axes.py); using
another parasite axes class won't work.
@QuLogic QuLogic added this to the v3.7.0 milestone Sep 27, 2022
@QuLogic QuLogic merged commit f7c5396 into matplotlib:main Sep 27, 2022
@anntzer anntzer deleted the unpar branch September 27, 2022 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants