ValueError: The lengths of the data (1) and the error bars (3) don't match

ValueError: The lengths of the data (1) and the error bars (3) don't match

我正在尝试向我的图表添加误差线,即使我在 Y 索引上有 3 个数据点并且正在添加 3 个 yerr 点。我收到以下错误:

ValueError: 数据(1)的长度与错误3不匹配

这是我的代码:

mydict = {'A':24, 'B':22,'C':1}

df = pd.DataFrame(mydict, index=['Yes'])

df.plot(kind='bar', y=['A','B','C'], yerr=[.14,.15,.03]).legend(loc='center left', bbox_to_anchor=(1.0, 0.5))

感谢您的帮助!

yerr 应该匹配输入的形状。

这在转置数据帧上效果很好:

df.T.plot(kind='bar',
        yerr=[.14,.15,.03]
       ).legend(loc='center left', bbox_to_anchor=(1.0, 0.5))

这里需要使用个别列表:

df.plot(kind='bar', y=['A','B','C'],
        yerr=[[.14],[.15],[.03]]
       ).legend(loc='center left', bbox_to_anchor=(1.0, 0.5))

或使用numpy:

df.plot(kind='bar', y=['A','B','C'],
        yerr=np.array([.14,.15,.03])[:,None]
       ).legend(loc='center left', bbox_to_anchor=(1.0, 0.5))

注意。我使用更大的(假的)yerr 值来生成图像以获得更好的可视化效果