Description
Bug summary
The code below ends up with an exception.
Code for reproduction
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
fig, ax = plt.subplots()
t0 = datetime.now()
dt = timedelta(seconds=1)
ax.plot([t0, t0+dt, t0+dt*2], [1, 2, 3])
locator = mdates.AutoDateLocator()
locator.intervald[mdates.MICROSECONDLY] = []
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
plt.show()
Actual outcome
Below is the exception message with a stack trace.
Traceback (most recent call last):
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/backends/backend_qt.py", line 468, in _draw_idle
self.draw()
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/backends/backend_agg.py", line 400, in draw
self.figure.draw(self.renderer)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/artist.py", line 95, in draw_wrapper
result = draw(artist, renderer, *args, **kwargs)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/figure.py", line 3175, in draw
mimage._draw_list_compositing_images(
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/image.py", line 131, in _draw_list_compositing_images
a.draw(renderer)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/axes/_base.py", line 3064, in draw
mimage._draw_list_compositing_images(
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/image.py", line 131, in _draw_list_compositing_images
a.draw(renderer)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/artist.py", line 72, in draw_wrapper
return draw(artist, renderer)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/axis.py", line 1376, in draw
ticks_to_draw = self._update_ticks()
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/axis.py", line 1262, in _update_ticks
major_locs = self.get_majorticklocs()
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/axis.py", line 1484, in get_majorticklocs
return self.major.locator()
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/dates.py", line 1378, in call
locator = self.get_locator(dmin, dmax)
File "/home/tnakamoto/.local/lib/python3.10/site-packages/matplotlib/dates.py", line 1460, in get_locator
f"intervald dictionary. Defaulting to {interval}.")
UnboundLocalError: local variable 'interval' referenced before assignment
Expected outcome
Matplotlib should not raise this exception, but show an appropriate warning instead.
Additional information
No response
Operating system
Ubuntu 22.04 on WSL2
Matplotlib Version
3.7.2
Matplotlib Backend
QtAgg
Python version
3.10.6
Jupyter version
No response
Installation
pip