图中的置信区间信息(图例?)

时间:2014-10-04 12:46:32

标签: matplotlib seaborn

我正在使用seaborn(基于matplotlib)绘制一些图表。 目前,我正在绘制一个barplot(在seaborn中称为factorplot),它也打印出0.95的置信区间。 我想在图例中添加信息,即95%置信区间,例如在图例中。 有没有办法包含这些信息,所以我不必在文中提及它?

1 个答案:

答案 0 :(得分:0)

我实际上也只是遇到了这个问题......

我想出的是有点hackish,因为看起来执行所有置信区间计算的sns._BarPlotter实例不会向用户公开。

但是,我们可以使用与sns.barplot()相同的参数创建其中一个,但请记住,您必须明确提供通常保留为默认值的参数。由于我们没有使用此绘图(尽管我们可以理论上),但最重要的参数是数据cin_boot(自举迭代次数):

from seaborn.categorical import _BarPlotter
bp = _BarPlotter(x='xdata',y='ydata',
                 hue='h',
                 data=df,
                 palette=['#C24D52','#4A70B0'],
                 ci=95,
                 n_boot=5000,
                 units=None,
                 order=None, 
                 hue_order=None,
                 estimator=np.mean, 
                 orient=None, 
                 color=None,
                 saturation=0.75, 
                 errcolor='.26')

获得_BarPlotter后,您可以访问其属性,例如计算的置信区间:

 In[1]: bp.confint

Out[1]: array([[[ 2.06522099,  2.41611633],
                [ 2.20088709,  2.54810739],
                [        nan,         nan]],

               [[ 1.83258433,  2.3521511 ],
                [ 2.21361428,  2.64342349],
                [        nan,         nan]],

               [[ 1.30160209,  1.54427938],
                [ 1.99597604,  2.22272918],
                [        nan,         nan]],

               [[        nan,         nan],
                [        nan,         nan],
                [ 0.58609489,  0.83233859]]])

如果这是经常使用的东西,为了公开这个功能,可能值得seaborn的分支。我也以同样的精神向开发者提交了feature request