0

我正在使用 seaborn(基于 matplotlib)来绘制一些图表。目前,我正在绘制一个条形图(在 seaborn 中称为因子图),它还打印 0.95 置信区间。我想在图中添加信息,即它是 95% 的置信区间,例如在图例中。有什么方法可以包含这些信息,这样我就不必在我的文字中提及它了?

4

1 回答 1

0

其实我也刚好遇到这个问题...

我想出的有点骇人听闻,因为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如果这是经常使用的东西,那么为了公开这个功能可能值得分叉。我还以同样的精神向开发人员提交了功能请求。

于 2015-07-27T01:48:10.497 回答