【问题标题】:Python bar chart with duplicate datetimes in index索引中具有重复日期时间的 Python 条形图
【发布时间】:2019-04-13 06:08:50
【问题描述】:

我想使用 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。我怎样才能让它们全部显示?

【问题讨论】:

  • 您可以将values 与前n 个整数plt.bar(range(len(values)), values) 进行对比,并将刻度设置为您想要的任何值。

标签: python datetime matplotlib plot


【解决方案1】:

您可以按日期分组,添加值,然后从同一数据框中绘制条形图:

df = pd.DataFrame(data=values, index=ind)
df = df.groupby(df.index).sum()
df.plot(kind='bar')

如果您想要的是所有值都出现在图中,无论日期如何,您都可以简单地使用:

df.plot(kind='bar')

日期重复的条目将被独立绘制。

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2014-11-06
    • 2018-01-22
    • 2020-05-04
    • 2020-07-08
    相关资源
    最近更新 更多