【问题标题】:bar plot with time on x axisx 轴上带有时间的条形图
【发布时间】:2021-02-04 21:16:22
【问题描述】:

我有一个 pandas 数据框 (filtered_4_6),我使用以下代码每小时从中提取事件的发生:

Filtered_time = filtered_4_6['Date'].dt.time.value_counts()

这给了我 24 行,第一列是时间,第二列是事件数。 我想绘制这 24 个条形图,但似乎找不到如何将时间列用作 x 轴

结果如下所示:

我尝试了不同的想法,但没有一个可行:

plt.bar(Filtered_time.index, Filtered_time.values)

肯定是格式转换错误,但我想不通。

我已尝试将 Filtered_time 设为数据帧

Filtered_time = pd.DataFrame(filtered_4_6['Date'].dt.time.value_counts())

但还是报错

TypeError:参数x(object)和width(float64)的dtypes不兼容

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    尝试用字符串代替:

    filtered_time = filtered_4_6['Date'].dt.strftime('%H:%M:%S').value_counts()
    filtered_time.plot()
    

    【讨论】:

    • 谢谢。在这种情况下将时间列转换为字符串是可行的,因为我的时间间隔均匀,但如果不是这种情况,我猜它必须保持数字格式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多