我习惯在seaborn上制作我的条形图,并且喜欢它用于显示置信区间的布局,但是我有一个特殊情况,我已经有了置信区间的数据集,就像这样:
month ci-b mean ci-t
201801 0.020 0.0206 0.021
201802 0.019 0.0198 0.0204
201803 0.022 0.0225 0.0228
201804 0.022 0.0236 0.0240
201805 0.023 0.0235 0.0239
有没有一种方法可以手动输入seaborn置信区间线的值?或者将其用作“None”,并使用一些matlib函数将置信区间放在图表中(但保留seaborn的条形图)
当我执行以下操作时:
ax = sns.barplot('month','mean',data=df, ci=None)
如预期一样,我得到了一个普通的条形图:
当我尝试使用matlib的误差条时,出现以下情况:
ax = sns.barplot('month','mean',data=df, ci=None)
plt.errorbar(x=df['month'],y=df['mean'],yerr=(df['ci-t']-df['ci-b']))
只有一行奇怪的线路丢失,所有东西都会变得混乱:
我是否在错误地使用errorbar?还有更好的工具吗?
plt.errorbar
在两侧添加并减去相同的误差。这里是文档。 - willk(2, N)
的值数组到yerr
,第一行是负误差,后面是正误差。所以调用应该像这样:yerr=[df['ci-mean']-df['ci-b'], df['ci-t'] - df['ci-mean']]
。我认为这是文档的正确解释。在原始答案中,同样的误差被加上和减去。这是不正确的,因为误差是从上到下导出的,而实际上有单独的误差。 - willk