在matplotlib中绘制列表/数组的散点图

时间:2014-08-05 05:30:01

标签: python numpy matplotlib

我浪费了太多时间浏览互联网上的例子。但我无法弄清楚为什么我不能在整数列表中绘制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进行转换会产生错误。

1 个答案:

答案 0 :(得分:1)

我弄清楚问题是什么。在date_list中确实存在一些字符串值,因此plt.plot抱怨。 plt.plot可以正常使用datetime.date值列表。无需将datetime.date转换为任何其他格式。