Skip to content

Commit 44a5dff

Browse files
committed
BUG: align custom x tick label baselines
1 parent 44f2e00 commit 44a5dff

22 files changed

Lines changed: 43 additions & 2 deletions

‎lib/matplotlib/axis.py‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1422,25 +1422,35 @@ def _update_ticks(self):
14221422
if (self._tick_group_visible(self._major_tick_kw)
14231423
and not isinstance(self.get_major_locator(), NullLocator)):
14241424
major_locs = self.get_majorticklocs()
1425-
major_labels = self.major.formatter.format_ticks(major_locs)
1425+
major_formatter = self.major.formatter
1426+
major_labels = major_formatter.format_ticks(major_locs)
1427+
major_is_custom = not self.isDefault_majfmt
14261428
major_ticks = self.get_major_ticks(len(major_locs))
14271429
for tick, loc, label in zip(major_ticks, major_locs, major_labels):
14281430
tick.update_position(loc)
14291431
tick.label1.set_text(label)
14301432
tick.label2.set_text(label)
1433+
# Custom formatters can produce labels with different
1434+
# ascenders, so let Text use a common line box for them.
1435+
tick.label1._is_ticklabel = major_is_custom
1436+
tick.label2._is_ticklabel = major_is_custom
14311437
else:
14321438
major_ticks = []
14331439

14341440
# Check if minor ticks should be computed.
14351441
if (self._tick_group_visible(self._minor_tick_kw)
14361442
and not isinstance(self.get_minor_locator(), NullLocator)):
14371443
minor_locs = self.get_minorticklocs()
1438-
minor_labels = self.minor.formatter.format_ticks(minor_locs)
1444+
minor_formatter = self.minor.formatter
1445+
minor_labels = minor_formatter.format_ticks(minor_locs)
1446+
minor_is_custom = not self.isDefault_minfmt
14391447
minor_ticks = self.get_minor_ticks(len(minor_locs))
14401448
for tick, loc, label in zip(minor_ticks, minor_locs, minor_labels):
14411449
tick.update_position(loc)
14421450
tick.label1.set_text(label)
14431451
tick.label2.set_text(label)
1452+
tick.label1._is_ticklabel = minor_is_custom
1453+
tick.label2._is_ticklabel = minor_is_custom
14441454
else:
14451455
minor_ticks = []
14461456

4.47 KB
Loading
4.4 KB
Loading
2.28 KB
Loading
3.66 KB
Loading
1.84 KB
Loading
1.69 KB
Loading
1.01 KB
Loading
951 Bytes
Loading
949 Bytes
Loading

0 commit comments

Comments
 (0)