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

如何用带均值标准差的pandas多级索引数据绘制带误差棒的分组条形图

解决方案

实现思路

你需要先将行索引中的均值、标准差数据拆分,再调整数据维度匹配绘图要求:

  • 从原多级索引DataFrame中分别提取均值(mean)、标准差(std)两个子集
  • 对两个子集做转置,让代谢物名称(cis-aconitate系列)作为行索引,对应x轴的刻度项;ADE/VEH分组作为列,对应每个刻度下的两个分组条形
  • 绘图时将标准差数据传入yerr参数作为误差棒数据源

完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# 1. 拆分均值、标准差数据并转置
mean_data = df.loc['mean'].T
std_data = df.loc['std'].T

# 2. 绘制带误差棒的分组条形图
ax = mean_data.plot(
    kind='bar',
    yerr=std_data,  # 传入标准差作为误差棒
    capsize=4,  # 误差棒两端短横线的长度
    figsize=(12, 6),  # 画布尺寸
    rot=45  # x轴标签旋转角度,避免重叠
)

# 可选:补充图表标注
ax.set_ylabel('数值(均值)')
ax.set_xlabel('代谢物分组')
plt.tight_layout()  # 自动调整布局,防止标签被截断
plt.show()

运行上述代码即可得到你需要的效果:x轴按顺序排列所有cis-aconitate系列项,每个刻度下有ADE、VEH两个颜色不同的条形,误差棒自动匹配对应分组的标准差数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:06:02