8000 Backport PR #22871: Fix year offset not always being added · meeseeksmachine/matplotlib@bc506ee · GitHub
[go: up one dir, main page]

Skip to content

Commit bc506ee

Browse files
QuLogicmeeseeksmachine
authored andcommitted
Backport PR matplotlib#22871: Fix year offset not always being added
1 parent d8629e9 commit bc506ee

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

lib/matplotlib/dates.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -797,8 +797,10 @@ def format_ticks(self, values):
797797
# mostly 0: years, 1: months, 2: days,
798798
# 3: hours, 4: minutes, 5: seconds, 6: microseconds
799799
for level in range(5, -1, -1):
800-
if len(np.unique(tickdate[:, level])) > 1:
801-
if level < 2:
800+
unique = np.unique(tickdate[:, level])
801+
if len(unique) > 1:
802+
# if 1 is included in unique, the year is shown in ticks
803+
if level < 2 and np.any(unique == 1):
802804
show_offset = False
803805
break
804806
elif level == 0:

lib/matplotlib/tests/test_dates.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,10 @@ def test_offset_changes():
621621
ax.set_xlim(d1, d1 + datetime.timedelta(weeks=3))
622622
fig.draw_without_rendering()
623623
assert formatter.get_offset() == '1997-Jan'
624+
ax.set_xlim(d1 + datetime.timedelta(weeks=7),
625+
d1 + datetime.timedelta(weeks=30))
626+
fig.draw_without_rendering()
627+
assert formatter.get_offset() == '1997'
624628
ax.set_xlim(d1, d1 + datetime.timedelta(weeks=520))
625629
fig.draw_without_rendering()
626630
assert formatter.get_offset() == ''

0 commit comments

Comments
 (0)
0