我有一个日期时间对象列表,我希望最终在设定范围内绘制这些对象。但是,当我使用 drange 定义此范围时,出现错误“ValueError: Number of samples, -23, must be non-negative”。
我在这里出错的任何建议?很确定我的数据中没有负值。
我正在使用 Python 3.6。
这是我的代码:
import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
date = [datetime.datetime(2017, 8, 24, 0, 0), datetime.datetime(2017, 8, 23, 0, 0), datetime.datetime(2017, 8, 22, 0, 0), datetime.datetime(2017, 8, 21, 0, 0), datetime.datetime(2017, 8, 18, 0, 0), datetime.datetime(2017, 8, 17, 0, 0), datetime.datetime(2017, 8, 16, 0, 0), datetime.datetime(2017, 8, 15, 0, 0), datetime.datetime(2017, 8, 14, 0, 0), datetime.datetime(2017, 8, 11, 0, 0), datetime.datetime(2017, 8, 10, 0, 0), datetime.datetime(2017, 8, 9, 0, 0), datetime.datetime(2017, 8, 8, 0, 0), datetime.datetime(2017, 8, 7, 0, 0), datetime.datetime(2017, 8, 4, 0, 0), datetime.datetime(2017, 8, 3, 0, 0), datetime.datetime(2017, 8, 2, 0, 0), datetime.datetime(2017, 8, 1, 0, 0)]
start = date[0] #is a datetime.datetime object according to type
end = date[-1] #is a datetime.datetime object according to type
delta = datetime.timedelta(days=5)
dates = mdates.drange(start, end, delta)
print(dates)
plt.plot(dates, y_data)
# raise ValueError("Number of samples, %s, must be non-negative." % num)
# ValueError: Number of samples, -23, must be non-negative.
我看到这end
小于start
但是delta
积极的。drange
像range
. 它期望从 开始start
并按数量更改它,delta
直到达到end
。我怀疑你应该-delta
在这个语句中使用。
正如 ImportanceOfBeingErnest 在评论中所建议的,您可以定义y_data
使用:
y_data = range(len(dates))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句