You need to enable JavaScript to run this app. 如何调整pandas柱状图的日期显示格式,去除附带的00:00:00时间?
优惠活动
大模型
产品
解决方案
定价
更多

如何调整pandas柱状图的日期显示格式,去除附带的00:00:00时间?

pandas柱状图x轴去除冗余时分秒的简易实现

你当前看到的x轴附带00:00:00冗余信息,核心原因是DataFrame的日期索引为带默认时间分量的datetime类型,pandas绘图时会默认将完整时间戳作为x轴标签渲染。以下两种方法改动量极小,完全适配你现有写好的绘图代码:

方案1:无侵入格式化索引(不改动原始数据)

绘图前生成临时的索引格式化副本,保留全部原有数据逻辑:

# 仅生成绘图用的临时数据集,不会修改原始Tab2_count的索引结构
plot_df = Tab2_count.set_index(Tab2_count.index.strftime('%Y-%m-%d'))
# 沿用原有绘图逻辑即可
plot_df.plot(kind='bar', y='Money_H', xlabel='Date', ylabel='Euro')

这种方法的好处是:字符串类型的索引不会触发pandas对datetime类型的自动时间格式渲染,x轴会直接展示纯YYYY-MM-DD格式的文本标签,没有任何额外时间分量。格式串可根据需求调整,若需要两位年份的短格式,把%Y-%m-%d替换为%y-%m-%d即可。

方案2:绘图后直接调整刻度标签(不新建副本)

如果不想生成额外的DataFrame副本,可以在绘图完成后直接批量替换x轴的刻度文本:

ax = Tab2_count.plot(kind='bar', y='Money_H', xlabel='Date', ylabel='Euro')
# 按原有索引顺序替换刻度标签为纯日期格式
ax.set_xticklabels(
    [idx.strftime('%Y-%m-%d') for idx in Tab2_count.index],
    rotation=0 # 日期较多时可设置为45度避免标签重叠
)

注意事项

  • 不要在格式化索引时跳过strftime的步骤,如果直接把datetime索引强转为普通字符串类型,pandas依然会保留完整的时间戳内容。
  • 上述两种方法都依赖pandas和matplotlib的原生功能,不需要安装任何额外依赖库。

内容的提问来源于stack exchange,提问作者Kai_hismelf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 11:15:03