'view limit minimum 0.0 is less than 1 with matplotlib

I know there are similar questions to mine below, but mine is minimal and does not have anything to do with pandas and also solution pd.to_datetime did not work (if I try it with pandas).

Here is my code:

import datetime
import matplotlib.pyplot as plt

plt.plot([datetime.datetime(2020, 5, 17), datetime.datetime(2020, 5, 18)], [2,3])

It generates the following error:

Traceback (most recent call last):
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\IPython\core\interactiveshell.py", line 3552, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-24-c099998bb2c0>", line 1, in <module>
    plt.plot([datetime.datetime(2020, 5, 17), datetime.datetime(2020, 5, 18)], [2,3])
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\pyplot.py", line 2789, in plot
    is not None else {}), **kwargs)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axes\_axes.py", line 1665, in plot
    lines = [*self._get_lines(*args, data=data, **kwargs)]
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axes\_base.py", line 225, in __call__
    yield from self._plot_args(this, kwargs)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axes\_base.py", line 391, in _plot_args
    x, y = self._xy_from_xy(x, y)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axes\_base.py", line 243, in _xy_from_xy
    bx = self.axes.xaxis.update_units(x)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1498, in update_units
    self._update_axisinfo()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1516, in _update_axisinfo
    self.set_major_locator(info.majloc)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1651, in set_major_locator
    self.stale = True
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 230, in stale
    self.stale_callback(self, val)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 51, in _stale_axes_callback
    self.axes.stale = val
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 230, in stale
    self.stale_callback(self, val)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\figure.py", line 51, in _stale_figure_callback
    self.figure.stale = val
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 230, in stale
    self.stale_callback(self, val)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\pyplot.py", line 589, in _auto_draw_if_interactive
    fig.canvas.draw_idle()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\backend_bases.py", line 1914, in draw_idle
    self.draw(*args, **kwargs)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\backends\backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axes\_base.py", line 2647, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1203, in draw
    ticks_to_draw = self._update_ticks()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1079, in _update_ticks
    major_locs = self.get_majorticklocs()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1324, in get_majorticklocs
    return self.major.locator()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\dates.py", line 1428, in __call__
    self.refresh()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\dates.py", line 1448, in refresh
    dmin, dmax = self.viewlim_to_dt()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\dates.py", line 1199, in viewlim_to_dt
    .format(vmin))
ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units
Traceback (most recent call last):
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib_inline\backend_inline.py", line 121, in flush_figures
    return show(True)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib_inline\backend_inline.py", line 43, in show
    metadata=_fetch_figure_metadata(figure_manager.canvas.figure)
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib_inline\backend_inline.py", line 232, in _fetch_figure_metadata
    for axes in fig.axes
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib_inline\backend_inline.py", line 234, in <listcomp>
    for label in axis.get_ticklabels()])
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1296, in get_ticklabels
    return self.get_majorticklabels()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1252, in get_majorticklabels
    ticks = self.get_major_ticks()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1407, in get_major_ticks
    numticks = len(self.get_majorticklocs())
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\axis.py", line 1324, in get_majorticklocs
    return self.major.locator()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\dates.py", line 1428, in __call__
    self.refresh()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\dates.py", line 1448, in refresh
    dmin, dmax = self.viewlim_to_dt()
  File "C:\Users\someuser\.conda\envs\env1\lib\site-packages\matplotlib\dates.py", line 1199, in viewlim_to_dt
    .format(vmin))
ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units

Any way to fix it?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source