【发布时间】:2014-11-29 08:09:35
【问题描述】:
我正在使用 seaborn(基于 matplotlib)来绘制一些图表。 目前,我正在绘制一个条形图(在 seaborn 中称为因子图),它还打印 0.95 置信区间。 我想在图中添加信息,即它是 95% 的置信区间,例如在图例中。 有什么方法可以包含这些信息,这样我就不必在我的文字中提及它了?
【问题讨论】:
标签: matplotlib seaborn
我正在使用 seaborn(基于 matplotlib)来绘制一些图表。 目前,我正在绘制一个条形图(在 seaborn 中称为因子图),它还打印 0.95 置信区间。 我想在图中添加信息,即它是 95% 的置信区间,例如在图例中。 有什么方法可以包含这些信息,这样我就不必在我的文字中提及它了?
【问题讨论】:
标签: matplotlib seaborn
其实我也遇到了这个问题……
我想出的有点骇人听闻,因为执行所有置信区间计算的 sns._BarPlotter 实例似乎并未向用户公开。
但是,我们可以自己创建其中一个,使用与 sns.barplot() 相同的参数,请记住,您必须明确提供通常保留为默认值的参数。因为我们没有用这个来绘图(尽管理论上我们可以),所以最重要的参数是数据,ci 和 n_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。
【讨论】: