没有异常值的 Matplotlib 箱线图

Posted

技术标签:

【中文标题】没有异常值的 Matplotlib 箱线图【英文标题】:Matplotlib boxplot without outliers 【发布时间】:2014-03-28 11:52:14 【问题描述】:

在 matplotlib (python) 中绘制箱线图时有什么方法可以隐藏异常值吗?

我正在使用最简单的方法来绘制它:

  from pylab import *
  boxplot([1,2,3,4,5,10])
  show()

这给了我以下情节:

(我无法发布图像,因为我没有足够的声誉,但基本上它是一个箱线图,Q1 在 y=1,Q3 在 y=5,离群值在 y=10)

我想删除 y=10 处的异常值,以便绘图仅显示从 Q1 到 Q3(在本例中为 1 到 5)。

【问题讨论】:

【参考方案1】:

在当前版本的 matplotlib 中你可以这样做:

boxplot([1,2,3,4,5,10], showfliers=False)

boxplot([1,2,3,4,5,10], sym='')

在旧版本中,只有第二种方法有效。

boxplot 的 docs 确实提到了这一点,顺便说一句,“如果您不想显示传单,请输入一个空字符串 ('')。”不过,至少对我自己而言,“异常值”是更熟悉的词。

【讨论】:

绝对可以。我的错......没有仔细阅读文档(只是寻找异常值,而不是传单!)。 没问题,如果你不知道的话,在文档中很难找到——我有选择其他方式的优势。 (我会编辑我的答案听起来不太明显,因为它不是特别清楚。) @DidacBusquets 只想插一句,在 v1.4 中,您可以在调用 boxplot 时传递 showfliers=False 选项。 @Paul H:当我的答案变得可用时,请随时编辑我的答案。 在 matplotlib 1.2 中,异常值被 boxplot(data,0,'') 隐藏。见 (matplotlib.org/1.2.1/api/pyplot_api.html)

以上是关于没有异常值的 Matplotlib 箱线图的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 箱线图使用预先计算(汇总)统计

python matplotlib箱线图

箱线图:标记异常值

07-matplotlib-箱线图

数据分析&数据挖掘异常值的判断与去除——3σ & 箱线图分析

Matplotlib 箱线图 x 轴