You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas转置DataFrame绘制的柱状图添加正确X轴标签?

解决Pandas柱状图X轴显示交易名称的问题

你的问题出在调用了df.transpose(),转置后数据结构被反转:原本作为行索引的交易名称变成了图例标签,原列名"duration"反而成了X轴标签。

直接去掉transpose()即可让X轴显示交易名称,修改后的代码如下:

import pandas as pd
from pathlib import Path  # 补充导入原代码用到的Path类

metrics_1_csv = Path("/tmp/metrics_2.csv")
print("reading", metrics_1_csv)
df = pd.read_csv(metrics_1_csv)

# 按transaction分组求和,transaction自动成为行索引
df = df.groupby(["transaction"]).sum(numeric_only=True)
# 按duration降序排序,保证X轴按预期顺序显示
df = df.sort_values(by=["duration"], ascending=False)
# 直接调用plot.bar,无需转置
ax = df.plot.bar(
    stacked=False,
    title="各交易耗时总和",
    figsize=(8, 4),
    legend=False  # X轴已显示交易名称,图例可省略
)
# 自定义轴标签让图表更清晰
ax.set_xlabel("交易名称")
ax.set_ylabel("总耗时")

代码说明:

  • 去掉transpose()后,df的行索引是交易名称,列是求和后的duration,plot.bar默认会把行索引作为X轴标签。
  • 加上legend=False可以去掉和X轴重复的图例,避免冗余。
  • 补充设置X/Y轴标签,让图表信息更直观。

运行这段代码后,X轴就会显示排序后的交易名称:ddd、bbb、ccc、aaa、eee,每个柱子对应该交易的总耗时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:50:01