使用datetime.日期在matplotlib与Python3



我尝试绘制元值图。每天有一个花车。我试过了:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import datetime
d = tuple()
d += (70.3, datetime.date(2015, 1, 7))
d += (60.1, datetime.date(2015, 2, 5))
d += (68.8, datetime.date(2015, 6, 2))
plt.plot(d)
plt.show()

由于

> Traceback (most recent call last):   File "./m.py", line 12, in
> <module>
>     plt.plot(d)   File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.dev1-py3.4-linux-i686.egg/matplotlib/pyplot.py",
> line 3129, in plot
>     ret = ax.plot(*args, **kwargs)   File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.dev1-py3.4-linux-i686.egg/matplotlib/axes/_axes.py",
> line 1382, in plot
>     self.add_line(line)   File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.dev1-py3.4-linux-i686.egg/matplotlib/axes/_base.py",
> line 1568, in add_line
>     self._update_line_limits(line)   File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.dev1-py3.4-linux-i686.egg/matplotlib/axes/_base.py",
> line 1579, in _update_line_limits
>     path = line.get_path()   File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.dev1-py3.4-linux-i686.egg/matplotlib/lines.py",
> line 908, in get_path
>     self.recache()   File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.dev1-py3.4-linux-i686.egg/matplotlib/lines.py",
> line 609, in recache
>     y = np.asarray(yconv, np.float_)   File "/usr/local/lib/python3.4/dist-packages/numpy/core/numeric.py", line
> 462, in asarray
>     return array(a, dtype, copy=False, order=order) TypeError: float() argument must be a string or a number, not 'datetime.datetime'

但是查看matplotlib文档datetime应该是完全支持的

尝试列出所有浮点数和所有日期在一起:

import matplotlib.pyplot as plt
import datetime
dates = [datetime.date(2015, 1, 7), datetime.date(2015, 2, 5), datetime.date(2015, 6, 2)]
Y = [70.3, 60.1, 68.8]
plt.plot(dates, Y)
plt.show()

最新更新