【发布时间】:2014-08-05 05:30:01
【问题描述】:
我浪费了很多时间浏览互联网上给出的示例。但我就是想不通为什么我不能根据整数列表绘制一个简单的 datetime.date 对象列表图表
appleProd1 appleProd2 appleProd3 appleProd4 ..... 70 Products
apple.com 2010-09-12 2008-01-01 2009-03-02 .......................
我想为发布日期绘制散点图,其中 x 轴为日期,y 轴为产品。我这样做
plt.subplot(1, 1, 1)
product_list = []
label_ticks = []
date_list = []
yval = 1
for prod, date in df.iteritems(): #date is a datetime.date object
date = pd.to_datetime(date)
product = prod
date_list.append(date)
prod_list.append(prod)
label_ticks.append(yval)
yval+=1
plt.plot_date(date_list, label_ticks)
最后一行 plt.plot 给我一个错误说 TypeError: float() argument must be a string or a number 。我还尝试将两个列表都转换为 numpy 数组并使用相同的 plt.scatter。同样的错误。两个列表的长度相同。也参考了这个网站
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter
有些日期是楠也。因此,使用 date2num 进行转换会出现错误。
【问题讨论】:
-
您可以使用
date2num也可以在这里查看:stackoverflow.com/a/1574146/1898982 -
@jonie83 :这会将日期时间转换为浮点数,并且列表看起来很奇怪。日期被转换为 733962.0、733962.0、733604.0、733657.0 之类的东西。所以它并没有太大帮助。
-
数字是自 0001 年 1 月 1 日以来的天数,浮点数是小时和秒
-
@MaxNoe :但我需要日期看起来像日期。
标签: python numpy matplotlib