Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Allow passing a transformation to secondary_xaxis/_yaxis#25224
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thank you for opening your first PR into Matplotlib!
If you have not heard from us in a while, please feel free to ping@matplotlib/developers
or anyone who has commented on the PR. Most of our reviewers are volunteers and sometimes things fall through the cracks.
You can also join uson gitter for real-time discussion.
For details on testing, writing docs, and our review process, please seethe developer guide
We strive to be a welcoming and open project. Please follow ourCode of Conduct.
This looks really useful, and a quick glance the code is great. Can we add an example, at least in the issue that shows the usefulness of this? Probably want one in the example gallery as well. I had to read your code to understand the context here, which if I understand is to allow the secondary xaxis to have a y position specified in data co-ordinates rather than just axes co-ordinates. If that is the case, what happens if the y data limits are set so the secondary axis is out of the Axes viewport? |
@jklymak Yes, you are correct on the context. Right now, if an axis is out of the viewport it isn't drawn. The existing function behaves the same if you give it a location outside of the viewport. E.g. Good point on the examples, I'll take care of that. |
Hi@ZachDaChampion - it seems you also need a rebase here to incorporate changes made in the main branch. Here's a handy guide:https://matplotlib.org/stable/devel/development_workflow.html#rebasing-on-upstream-main Feel free to ping if you need more guidance! |
It appears that you did a merge instead of a rebase, which results in 884 commits (!!) showing up here. We have some docs for recovering from situations like this: https://matplotlib.org/stable/devel/development_workflow.html#recovering-from-mess-ups |
My bad, I didn't realize I pushed that version. Thanks for the link |
ffb9b8e
tocb55d34
CompareUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Now that we have typing stubs, it looks like you'll have to update the corresponding lines in the |
4af5bc1
toe33828f
CompareUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
b2d2bc7
to941f455
CompareGentle ping to the reviewers - can you take another look here? Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Just a couple minor fixes.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
I can rebase later if needed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Sorry we took a while to get back to this again. Just a couple minor fixes, but otherwise LGTM.
fig, ax = plt.subplots(layout='constrained') | ||
x = np.arange(0, 10) | ||
np.random.seed(34) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
We almost always use 19680801 as seed
np.random.seed(34) | |
np.random.seed(19680801) |
lib/matplotlib/axes/_axes.py Outdated
else: | ||
raise ValueError('secondary_yaxis location must be either ' | ||
if not (location in ['left', 'right'] or isinstance(location, Real)): | ||
raise ValueError('secondary_xaxis location must be either ' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Typo:
raiseValueError('secondary_xaxis location must be either ' | |
raiseValueError('secondary_yaxis location must be either ' |
# Make sure transform is a Transform or None. | ||
_api.check_isinstance((transforms.Transform, None), transform=transform) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I wouldn't bother with the comment; the function call is clear:
# Make sure transform is a Transform or None. | |
_api.check_isinstance((transforms.Transform,None),transform=transform) | |
_api.check_isinstance((transforms.Transform,None),transform=transform) |
Add transform argument to secondary axesUpdate _secax_docstringMove new params to end of functionsAdd input check to secondary axesAdd testsAdd examplesMove transform type checks and improve docsAdd type stubsUpdate _secax_docstringMove new params to end of functionsAdd input check to secondary axesMove transform type checks and improve docsFix rebase errorFix stub for SecondaryAxis.__init__Clarify exampleAdd default param to secax constructorFix stub for secax constructorSimplify importsCo-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>Remove redundancy in docsCo-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>Fix typo
4905246
toc1b51aa
CompareI've rebased, squashed into one commit, fixed the typos, and force pushed here in the interest of getting this merged. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Thanks@ZachDaChampion and congratulations on your first contribution to Matplotlib. 🎉 We'd love to see you back! |
Uh oh!
There was an error while loading.Please reload this page.
PR Summary
resolves#25119.
I'm new to Matplotlib development so not sure if this is the best way to do this. I added a
transform
parameter tosecondary_xaxis
andsecondary_yaxis
and passed that through intoSecondaryAxis._set_location()
, where the transform is blended.I also updated
test_secondary_xy()
andtest_secondary_fail()
to test the transform.I'm not entirely sure if/where I'm meant to put
.. versionchanged::
in the docsting, but I'm happy to add it if it's needed.PR Checklist
Documentation and Tests
pytest
passes)Release Notes
.. versionadded::
directive in the docstring and documented indoc/users/next_whats_new/
.. versionchanged::
directive in the docstring and documented indoc/api/next_api_changes/
next_whats_new/README.rst
ornext_api_changes/README.rst