Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Correctly pass location when constructing ImageGrid colorbar. #25884

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
May 14, 2023

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented May 13, 2023

Previously only the orientation would be passed, so information on whether the colorbar is on the top or the right would lost, resulting in ticks, ticklabels, and label being on the wrong side of the colorbar. Fix that.

The baseline image changes exactly test that (the colorbar ticks move to the other side). While at it, also simplify the plotted data in test_imagegrid_cbar_mode, which decreases more than 2x the size of the baseline image (86K -> 34K).

Closes #23595.

I think this was really broken by https://github.com/matplotlib/matplotlib/pull/20501/files#diff-ba79d31808d1f55bdf8bf2896366c85122eb9488e140c5a4de060f2c4e1fa8f6L42.

PR summary

PR checklist

Previously only the orientation would be passed, so information on
whether the colorbar is on the top or the right would lost, resulting in
ticks, ticklabels, and label being on the wrong side of the colorbar.
Fix that.

The baseline image changes exactly test that (the colorbar ticks move to
the other side).  While at it, also simplify the plotted data in
test_imagegrid_cbar_mode, which decreases more than 2x the size of the
baseline image (86K -> 34K).
@@ -22,23 +22,14 @@ def __init__(self, *args, orientation, **kwargs):
self.orientation = orientation
super().__init__(*args, **kwargs)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Semi-OT, but got to this because you deleted cla(): This super().__init__ should not do anything, right? - Likely a leftover from the dedicated axes_grid colorbar classes?

Copy link
Contributor Author

@anntzer anntzer May 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does (should?), as CbarAxesBase is a mixin and will thus end up in the base classes of the actual colorbar axes class used by ImageGrid, and thus we need to forward arguments via super() (after extracting out orientation).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed. Maybe that should be mentioned somewhere in the class? without that context, it's looks like object is the only parent. Either way, the PR is correct.

@timhoffm timhoffm added this to the v3.8.0 milestone May 14, 2023
@timhoffm timhoffm merged commit 10e8bf1 into matplotlib:main May 14, 2023
@anntzer anntzer deleted the igcl branch May 15, 2023 06:17
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.

[Bug]: CbarAxesBase.toggle_label doesn't seem to work properly
3 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.