我将尝试绘制一些日期时间对象的直方图,但是我无法使条形图与条形框对齐。以下是我的代码:
首先,我导入所需的内容并声明开始、结束和一天的对象:
import datetime
import matplotlib.pyplot as plt
end = datetime.date(2017,5,14)
start = datetime.date(2017,5,8)
one_day = datetime.timedelta(days = 1)
然后我声明一个任意的日期列表:
date_list = [datetime.date(2017,5,14), datetime.date(2017,5,14),
datetime.date(2017,5,14), datetime.date(2017,5,9), datetime.date(2017,5,13),
datetime.date(2017,5,12), datetime.date(2017,5,11),
datetime.date(2017,5,11), datetime.date(2017,5,9)]
然后我遍历了起始日期和结束日期之间的每一天(在这个例子中是一周),将每个日期添加到一个列表中:
week = []
for i in range((end-start).days+1):
week.append(start + (i)*one_day)
这是因为一周中的某些日子在日期列表中不存在(我知道这种情况下我可以跳过它,但我希望它可以扩展到其他日期列表)。然后我用hist()绘图:
plt.hist(date_list, bins = len(week)+1)
plt.show()
我尝试了各种二进制格式的组合,包括不同的加1和范围对齐方式,但日期从未在条形图中保持一致的位置。
plt.hist(date_list, bins = len(week)+1, align='left')
- kingmakerking