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

为什么使用pandas的dataframe.plot绘图时误差条无法显示?

问题根因

yerr参数传入的误差DataFrame列名与绘图使用的均值列名不匹配,pandas无法完成误差与对应柱状图的绑定,因此不会渲染误差条。
你绘图用的列是x_mean、y_mean,但误差列是x_se、y_se,列名不一致导致匹配失败。

解决方案

方法1:对齐误差数据与绘图数据的列名

将误差DataFrame的列名修改为和绘图列完全一致,即可自动匹配:

import pandas as pd
import matplotlib.pyplot as plt

rows = ["N", "W", "E", "S"]
cols = ["x_mean","y_mean","x_se","y_se"]
data = ([50, 40, 2, 5], [30, 34, 3, 5], [60, 45, 8, 3], [80, 60, 5, 5])
df = pd.DataFrame(data, index = rows, columns = cols)

# 重命名误差列和绘图列保持一致
error_df = df[["x_se", "y_se"]].rename(columns={"x_se":"x_mean", "y_se":"y_mean"})
df[["x_mean", "y_mean"]].plot(kind="bar", yerr=error_df, rot=1)
plt.show()

方法2:直接传入误差数值数组

跳过列名匹配逻辑,直接把误差值转成numpy数组传入,pandas会按列顺序对应误差:

df[["x_mean", "y_mean"]].plot(kind="bar", yerr=df[["x_se", "y_se"]].values, rot=1)
plt.show()

两种方法都可以正常显示分组柱状图对应的误差条。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:24:00