我想使用matplotlib pyplot在python中制作条形图。数据由一个索引(一个日期时间列表)和一个与该日期时间相对应的数字组成。我有所有属于同一天的各种样本。但是,制作条形图时,它仅显示对应于某个日期时间的第一个样本,而不是所有样本。如何制作显示每个条目的条形图?
索引具有以下结构:
ind = [datetime.datetime(2017, 3, 1, 0, 0), datetime.datetime(2017, 3, 1, 0, 0),
datetime.datetime(2017, 3, 15, 0, 0), datetime.datetime(2017, 3, 15, 0, 0)]
,值只是整数:
values = [10, 20, 30, 40]
因此,在绘制时,它仅显示值为10的条形图2017-3-1和值为30的条形图2017-3-15。如何使它们全部显示?
答案 0 :(得分:2)
您可以按日期分组,添加值,然后从同一数据框中绘制条形图:
df = pd.DataFrame(data=values, index=ind)
df = df.groupby(df.index).sum()
df.plot(kind='bar')
如果要使所有值都显示在绘图中,而不考虑日期,则可以简单地使用:
df.plot(kind='bar')
具有重复日期的条目将被独立绘制。