我浪费了很多时间浏览互联网上给出的示例。但我只是想不通为什么我不能针对整数列表绘制 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 进行转换会在那里出错。
最佳答案
我想出了问题所在。 date_list 中确实有一些字符串值,所以 plt.plot 提示。 plt.plot 与 datetime.date 值列表一起工作得很好。无需将 datetime.date 转换为任何其他格式。
关于python - 在 matplotlib 中绘制列表/数组的散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25131752/