发布于 2018-03-06 20:59:56
原则上,假设是正确的,即如果使用四分位数的倍数(IQR),盒形图上的晶须应具有相同的长度。
然而,实际上有两种情况是不正确的。不幸的是,维基百科的英文版本并没有说明这些原因,但让我翻译一下德语维基百科的解释。
晶须 源自John W. Tukey的一个可能的定义是将晶须的长度限制在最大1.5倍的四分位数范围内(1.5*IQR)。 在这种情况下,晶须并不是完全以这个值结尾,而是以仍然位于这个边界内的数据的值结束。因此,晶须的长度是由数据决定的,而不是由四分位数范围庄严地决定的。这就是为什么晶须不需要在盒子两端的大小相同的原因。如果在1.5*IQR边界外没有值,则晶须的长度由最小值和最大值决定。否则,晶须之外的值将在图表中单独标记;然后这些值可以被视为异常值。
同一维基百科页面上的情节可能会使这一点变得更加明显:

在问题中显示的图表中,最肯定的第二个原因是:即较低的晶须以最低数据值的位置结束。
发布于 2018-03-06 20:25:57
matplotlib允许单独的错误条(我想这就是你所说的“胡须”的意思)。下面是matplotlib的页面:demo.html
可以通过使用xerr和yerr:"xerr/yerr :标量或类似数组的、形状( N)或形状(2,N)(可选)来显式定义错误条。
如果标量数、类len(N)数组对象或类似于N元素的数组对象,则在+/-值处绘制相对于数据的错误条。默认为无。
如果形状为2xN,则在-row1和+row2处绘制相对于数据的错误条。“
...and将它们插入各自在matplotlib.axes.Axes.errorbar中的位置
Axes.errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, elinewidth=None, capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False, xuplims=False, errorevery=1, capthick=None, *, data=None, **kwargs)页面:gen/matplotlib.axes.Axes.errorbar.html
如果您对使错误条在+y和-y方向上不同感兴趣,那么您可以在相同的图形上绘制两次,其中第二个图除了错误条之外没有标记,而这些错误条的中心是+y和-y值之间的平均值。
https://stackoverflow.com/questions/49139299
复制相似问题