Don't clip colorbar dividers#23549
Merged
tacaswell merged 2 commits intomatplotlib:mainfrom Aug 9, 2022
Merged
Conversation
oscargus
approved these changes
Aug 4, 2022
Member
|
I think we can zoom in on colorbar axes now, though, and we can certainly set the x/ylimits. Won't these now dangle in space if we do that? |
Member
Author
|
I was thinking that, but when I tried it with the original example, I was unable to pan or zoom the colorbar. Did it break, or is the test not sufficiently set up to allow it? |
Contributor
|
I don't see these dangling in space if I test the original example with this... import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import from_levels_and_colors
my_cmap = mpl.cm.viridis
bounds = np.arange(10)
nb_colors = len(bounds) + 1
colors = my_cmap(np.linspace(100, 255, nb_colors).astype(int))
my_cmap, my_norm = from_levels_and_colors(bounds, colors, extend='both')
plt.figure(figsize=(5, 1))
ax = plt.subplot(111)
cbar = mpl.colorbar.ColorbarBase(ax, cmap=my_cmap, norm=my_norm, orientation='horizontal', drawedges=True)
cbar.ax.set_xlim(2, 10)
cbar.ax.set_navigate(True)
plt.subplots_adjust(left=0.05, bottom=0.4, right=0.95, top=0.9)
plt.show()Because it is a matplotlib/lib/matplotlib/colorbar.py Lines 474 to 477 in 02e93e2 Manually enabling interaction moves the colors, but not the boundary lines, so those will not move around either apparently? |
Member
Author
They are sometimes right on the edge of the Axes, and the last (or possibly first) don't get drawn due to clipping. Because the divider line width is the same as the Axes frame line width, we don't have to worry about it going outside when unclipped. Fixes matplotlib#22864
In this case, place dividers at the same place internally, but then always place a divider at the Axes limits (when there's an extend triangle there).
298a23f to
930bd2f
Compare
Member
Author
|
This now tests with |
meeseeksmachine
pushed a commit
to meeseeksmachine/matplotlib
that referenced
this pull request
Aug 9, 2022
tacaswell
added a commit
that referenced
this pull request
Aug 9, 2022
…549-on-v3.5.x Backport PR #23549 on branch v3.5.x (Don't clip colorbar dividers)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

PR Summary
They are sometimes right on the edge of the
Axes, and the last (or possibly first) don't get drawn due to clipping. Because the divider line width is the same as theAxesframe line width, we don't have to worry about it going outside when unclipped.Fixes #22864
PR Checklist
Tests and Styling
pytestpasses).flake8-docstringsand runflake8 --docstring-convention=all).Documentation
doc/users/next_whats_new/(follow instructions in README.rst there).doc/api/next_api_changes/(follow instructions in README.rst there).