Mikhail Kolodin.

Project: Internet temperature. 2015-12-31 1.5.3

IPython research for internet temperature. We use now only fontanka.ru website, later other sites and methods will be added.

Version with database recording. Now full archive of headers since 2000.

Here we count good and bad words in the database. No more downloading info from websites.


In [32]:
import datetime
now = datetime.datetime.now()

import sqlite3

In [33]:
#%pylab inline
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime, date, time, timedelta
from time import gmtime, strftime

In [39]:
# main db
#db = "mp-nettemp3-fru-2015.db"
#dbcf = "mp-nettemp3-fru-2015-stat.db"
db = "mp-nettemp3-fru-2000-2015.db"
dbcf = "mp-nettemp3-fru-2000-2015-stat.db"
conn = sqlite3.connect(db)
cur = conn.cursor()

In [40]:
# temp db, later - also to main
#dbc = sqlite3.connect(":memory:")
dbc = sqlite3.connect(dbcf)
curc = dbc.cursor()

In [41]:
# calc data per days
#dbc.execute("drop table if exists daydata")
dbc.execute("create table if not exists daydata (day text, wpos int, wneg int, mark number)")


Out[41]:
<sqlite3.Cursor at 0x7f6603025e30>

In [42]:
dbc.commit()

In [43]:
cur.execute("select dtyear, sum(wpos), sum(wneg), sum(mark) from netdata group by dtyear")


Out[43]:
<sqlite3.Cursor at 0x7f6602fbc180>

In [44]:
vals = []

In [45]:
for row in cur:
#    print (row)
    vals += [row]

In [46]:
#print (vals)
vdates = []
vpos = []
vneg = []
vmark = []
for val in vals:
    vdates += [val[0]]
    vpos += [val[1]]
    vneg += [(-val[2])]
    vmark += [val[3]]
#print (vdates, vpos, vneg, vmark)

In [47]:
from matplotlib.finance import quotes_historical_yahoo_ochl
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
from matplotlib.finance import quotes_historical_yahoo_ochl
years = YearLocator()   # every year
months = MonthLocator()  # every month
yearsFmt = DateFormatter('%Y')

In [51]:
x = mdates.drange(datetime.strptime(vdates[0], "%Y-%m-%d"), 
    datetime.strptime(vdates[-1], "%Y-%m-%d"), 
    timedelta(days=1))
y = np.array(vmark)
#x = [v[0] for v in vdates]
#y = [v[0] for v in vdates]
x = np.array(range(len(y)))
fig = plt.figure()
sp = fig.add_subplot(111)
sp.plot_date(x, y, '-') 
#x
#y
sp.plot(x, y, '-')
#sp.title('title')
#sp.ylabel('marks')
sp.grid(True)
#sp.plot_date(vdates, vmark, '-')
plt.show()


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py in __draw_idle_agg(self, *args)
    174     def __draw_idle_agg(self, *args):
    175         try:
--> 176             FigureCanvasAgg.draw(self)
    177             self.update()
    178         finally:

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_agg.py in draw(self)
    472 
    473         try:
--> 474             self.figure.draw(self.renderer)
    475         finally:
    476             RendererAgg.lock.release()

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/figure.py in draw(self, renderer)
   1131         dsu.sort(key=itemgetter(0))
   1132         for zorder, a, func, args in dsu:
-> 1133             func(*args)
   1134 
   1135         renderer.close_group('figure')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axes/_base.py in draw(self, renderer, inframe)
   2302 
   2303         for zorder, a in dsu:
-> 2304             a.draw(renderer)
   2305 
   2306         renderer.close_group('axes')

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     59     def draw_wrapper(artist, renderer, *args, **kwargs):
     60         before(artist, renderer)
---> 61         draw(artist, renderer, *args, **kwargs)
     62         after(artist, renderer)
     63 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in draw(self, renderer, *args, **kwargs)
   1104         renderer.open_group(__name__)
   1105 
-> 1106         ticks_to_draw = self._update_ticks(renderer)
   1107         ticklabelBoxes, ticklabelBoxes2 = self._get_tick_bboxes(ticks_to_draw,
   1108                                                                 renderer)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in _update_ticks(self, renderer)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in <listcomp>(.0)
    947 
    948         interval = self.get_view_interval()
--> 949         tick_tups = [t for t in self.iter_ticks()]
    950         if self._smart_bounds:
    951             # handle inverted limits

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/axis.py in iter_ticks(self)
    890         Iterate through all of the major and minor ticks.
    891         """
--> 892         majorLocs = self.major.locator()
    893         majorTicks = self.get_major_ticks(len(majorLocs))
    894         self.major.formatter.set_locs(majorLocs)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in __call__(self)
   1004     def __call__(self):
   1005         'Return the locations of the ticks'
-> 1006         self.refresh()
   1007         return self._locator()
   1008 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in refresh(self)
   1024     def refresh(self):
   1025         'Refresh internal information based on current limits.'
-> 1026         dmin, dmax = self.viewlim_to_dt()
   1027         self._locator = self.get_locator(dmin, dmax)
   1028 

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in viewlim_to_dt(self)
    768             vmin, vmax = vmax, vmin
    769 
--> 770         return num2date(vmin, self.tz), num2date(vmax, self.tz)
    771 
    772     def _get_unit(self):

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in num2date(x, tz)
    417         tz = _get_rc_timezone()
    418     if not cbook.iterable(x):
--> 419         return _from_ordinalf(x, tz)
    420     else:
    421         x = np.asarray(x)

/home/myke/soft/anaconda3/lib/python3.5/site-packages/matplotlib/dates.py in _from_ordinalf(x, tz)
    269 
    270     ix = int(x)
--> 271     dt = datetime.datetime.fromordinal(ix).replace(tzinfo=UTC)
    272 
    273     remainder = float(x) - ix

ValueError: ordinal must be >= 1

In [ ]:
conn.close()
dbc.close()

In [ ]: