matplotlib icon indicating copy to clipboard operation
matplotlib copied to clipboard

Remove direct manipulation of HostAxes.parasites by end users.

Open anntzer opened this issue 3 years ago • 0 comments

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).

anntzer avatar Aug 07 '22 17:08 anntzer