我浪费了太多时间浏览互联网上的例子。但我无法弄清楚为什么我不能在整数列表中绘制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进行转换会产生错误。
答案 0 :(得分:1)
我弄清楚问题是什么。在date_list中确实存在一些字符串值,因此plt.plot抱怨。 plt.plot可以正常使用datetime.date值列表。无需将datetime.date转换为任何其他格式。