这个问题在这里已有答案:

我目前正在使用Python 3.4,Pandas 0.20.3和Matplotlib 2.1.0 . 使用早期版本的Pandas和Matplotlib在matplotlib bar with asymmetrical error bars上提出了类似的问题,但在这种情况下,代码产生了错误,而在我的情况下,代码产生错误的图形 .

基本上,我有一个由几列数据和命名值索引组成的Pandas数据帧 . 我想将其中一列作为条形图绘制,并包含不对称的误差条 . 我已将下部和上部误差线定义为两个列表的列表,第一个表示较低的误差线,第二个表示较高的误差线 . 但是,当我绘制条形图时,误差线基于第一个列表是对称的;如果我绘制两列的条形图,则第二个列表才会起作用 .

我使用的代码可以总结如下:

import numpy as np
import pandas as pd

myDF = pd.DataFrame({'col1':[4,5,6,7],'col2':[6,5,4,5]},index=['A','B','C','D'])
print(myDF)

err = [[0.5,0.5,2,2],[2,2,3,3]]

ax = myDF.loc[:,['col1']].plot(kind = 'bar',yerr = err)

这使:

col1  col2
A     4     6
B     5     5
C     6     4
D     7     5

...并生成以下图表:

enter image description here

我想我错过了一些明显的东西,但我不能指责错误;有人可以赐教吗?