Matplotlib 为什么熊猫在不对称错误条的两侧应用相同的值?
我尝试使用pandas和matplotlib绘制一个带有不对称错误条的序列,代码如下:Matplotlib 为什么熊猫在不对称错误条的两侧应用相同的值?,matplotlib,pandas,Matplotlib,Pandas,我尝试使用pandas和matplotlib绘制一个带有不对称错误条的序列,代码如下: d = {'high_delta': {1: 0.6, 2: 0.1, 3: 0.2, 4: 0.1, 5: 0.1, 6: 0.1, 7: 0.1, 8: 0.1, 9: 0.2, 10: 0.1}, 'low_delta': {1: 0.2, 2: 0.1, 3: 0.1, 4: 0.1, 5: 0.1, 6: 0.1, 7: 0.1, 8
d = {'high_delta': {1: 0.6,
2: 0.1,
3: 0.2,
4: 0.1,
5: 0.1,
6: 0.1,
7: 0.1,
8: 0.1,
9: 0.2,
10: 0.1},
'low_delta': {1: 0.2,
2: 0.1,
3: 0.1,
4: 0.1,
5: 0.1,
6: 0.1,
7: 0.1,
8: 0.1,
9: 0.1,
10: 0.4},
'p_hat': {1: 0.2,
2: 0.1,
3: 0.3,
4: 0.3,
5: 0.1,
6: 0.3,
7: 0.2,
8: 0.2,
9: 0.1,
10: 0.8}}
df = pandas.DataFrame(d)
df['p_hat'].plot(yerr=df[['low_delta', 'high_delta']].T.values)
(df.p_hat + df.high_delta).plot(style='.')
(df.p_hat - df.low_delta).plot(style='*')
下限似乎总是与我所期望的匹配,但它似乎不是在上限上添加值,而是在再次添加来自下限的值
如何将错误传递到matplotlib中,以便正确呈现错误条?简短回答:对非对称错误条使用1xn形状的错误列表 F.ex。在当前示例中,使用
errors = [ f.index.values, df['p_hat'].values ]
df['p_hat'].plot(yerr=[errors])
目前,Pandas中存在一个错误,导致Pandas对一个系列的2xN形状中给出的错误条进行解释,就像它对一个数据帧的多行解释多个错误条一样。由于您显然只绘制了1行/系列,因此仅使用了错误栏列表的第一个元素,并将其解释为对称错误
在pandas中修复错误之前,可以“欺骗”pandas使用非对称错误条,方法是传递Mx2xN形状的错误,这是数据帧上非对称错误条的预期形状。准确地说,您必须使用1x2n形状的列表,只需调用f.ex即可创建该列表
yerr=[…]
你能不使用pandas重新编写吗?如果我用plt.errorbar(df.index.values,df['p_-hat'].values,yerr=df['low_-delta',high_-delta'].T.values)替换df['p_-hat'].plot()
,但是我想在熊猫身上做这项工作,或者至少知道为什么不行。我会在熊猫身上写一份错误报告,因为这是熊猫身上的一个错误。根据,熊猫似乎不支持这种类型的操作,尽管。无法分析序列的不对称错误条。报告的错误:。