Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Fix label_outer in the presence of colorbars.#30098
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
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Changes fromall commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -4749,14 +4749,39 @@ def label_outer(self, remove_inner_ticks=False): | ||
self._label_outer_yaxis(skip_non_rectangular_axes=False, | ||
remove_inner_ticks=remove_inner_ticks) | ||
def _get_subplotspec_with_optional_colorbar(self): | ||
""" | ||
Return the subplotspec for this Axes, except that if this Axes has been | ||
moved to a subgridspec to make room for a colorbar, then return the | ||
subplotspec that encloses both this Axes and the colorbar Axes. | ||
""" | ||
ss = self.get_subplotspec() | ||
if not ss: | ||
timhoffm marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
return | ||
gs = ss.get_gridspec() | ||
# Match against subgridspec hierarchy set up by colorbar.make_axes_gridspec. | ||
if (isinstance(gs, mpl.gridspec.GridSpecFromSubplotSpec) | ||
and gs.nrows * gs.ncols == 6): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Please add a comment what this magic is about. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. done Member There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Thanks. Basically ok. Would it make more sense that
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. I would lean towards the least formal here - the subgridspec trick of making colorbars is pretty clunky, and note that it is explicitlynot used by The original ideas behind grid specs and subgridspecs were very good, but unfortunately loses the relationship between sibling axes if you change add the colorbar and make the colorbar and main axes child subgridspecs. | ||
for ax in self.figure.axes: | ||
if (ax is not self | ||
and hasattr(ax, "_colorbar_info") | ||
and ax.get_subplotspec() | ||
and isinstance(ax.get_subplotspec().get_gridspec(), | ||
mpl.gridspec.GridSpecFromSubplotSpec) | ||
and (ax.get_subplotspec().get_gridspec()._subplot_spec | ||
is gs._subplot_spec)): | ||
ss = gs._subplot_spec | ||
break | ||
return ss | ||
def _label_outer_xaxis(self, *, skip_non_rectangular_axes, | ||
remove_inner_ticks=False): | ||
# see documentation in label_outer. | ||
if skip_non_rectangular_axes and not isinstance(self.patch, | ||
mpl.patches.Rectangle): | ||
return | ||
ss = self._get_subplotspec_with_optional_colorbar() | ||
ifss is None: | ||
return | ||
label_position = self.xaxis.get_label_position() | ||
if not ss.is_first_row(): # Remove top label/ticklabels/offsettext. | ||
@@ -4782,8 +4807,8 @@ def _label_outer_yaxis(self, *, skip_non_rectangular_axes, | ||
if skip_non_rectangular_axes and not isinstance(self.patch, | ||
mpl.patches.Rectangle): | ||
return | ||
ss = self._get_subplotspec_with_optional_colorbar() | ||
ifss is None: | ||
return | ||
label_position = self.yaxis.get_label_position() | ||
if not ss.is_first_col(): # Remove left label/ticklabels/offsettext. | ||
Uh oh!
There was an error while loading.Please reload this page.