Skip to content

Error with plot_date and agg backend: ValueError: ordinal must be >= 1 #6023

Closed
@mvds314

Description

@mvds314

When using plot_date in the agg backend I get the following error: ValueError: ordinal must be >= 1. The problem does arise in matplotlib 1.5.1 (winpython 2.7.10.3), but not in 1.4.3 (winpython 2.7.10.2).

import matplotlib as mpl
import matplotlib.pyplot as plt
import datetime

plt.switch_backend('agg')
#plt.switch_backend('qt4agg')

x = [datetime.datetime(2013,12,i) for i in range(1, 11)]
y = range(len(x))
plt.plot_date(x,y)

Stack trace:

  File "D:/Python/untitled1.py", line 19, in <module>
    plt.plot_date(x,y)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\pyplot.py", line 3173, in plot_date
    data=data, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\__init__.py", line 1812, in inner
    return func(ax, *args, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axes\_axes.py", line 1494, in plot_date
    ret = self.plot(x, y, fmt, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\__init__.py", line 1812, in inner
    return func(ax, *args, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axes\_axes.py", line 1424, in plot
    for line in self._get_lines(*args, **kwargs):
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axes\_base.py", line 386, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axes\_base.py", line 364, in _plot_args
    x, y = self._xy_from_xy(x, y)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axes\_base.py", line 197, in _xy_from_xy
    bx = self.axes.xaxis.update_units(x)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axis.py", line 1394, in update_units
    self._update_axisinfo()
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axis.py", line 1412, in _update_axisinfo
    self.set_major_locator(info.majloc)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axis.py", line 1513, in set_major_locator
    self.stale = True
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 267, in stale
    self.stale_callback(self, val)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 74, in _stale_axes_callback
    self.axes.stale = val
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 267, in stale
    self.stale_callback(self, val)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\figure.py", line 56, in _stale_figure_callback
    self.figure.stale = val
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 267, in stale
    self.stale_callback(self, val)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\pyplot.py", line 568, in _auto_draw_if_interactive
    fig.canvas.draw_idle()
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\backend_bases.py", line 2026, in draw_idle
    self.draw(*args, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\backends\backend_agg.py", line 474, in draw
    self.figure.draw(self.renderer)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 61, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\figure.py", line 1159, in draw
    func(*args)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 61, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axes\_base.py", line 2324, in draw
    a.draw(renderer)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\artist.py", line 61, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axis.py", line 1106, in draw
    ticks_to_draw = self._update_ticks(renderer)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axis.py", line 949, in _update_ticks
    tick_tups = [t for t in self.iter_ticks()]
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\axis.py", line 892, in iter_ticks
    majorLocs = self.major.locator()
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\dates.py", line 1006, in __call__
    self.refresh()
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\dates.py", line 1026, in refresh
    dmin, dmax = self.viewlim_to_dt()
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\dates.py", line 770, in viewlim_to_dt
    return num2date(vmin, self.tz), num2date(vmax, self.tz)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\dates.py", line 419, in num2date
    return _from_ordinalf(x, tz)
  File "C:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\matplotlib\dates.py", line 271, in _from_ordinalf
    dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
ValueError: ordinal must be >= 1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions