没有异常值的 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 箱线图的主要内容,如果未能解决你的问题,请参考以下文章