如何在pandas中防止盒图中的异常值绘制

6

我有一个数据框(名为result_df)想要用箱线图绘制其中一列。

但是某些异常值破坏了这个可视化效果。怎样防止绘制异常值?

我使用的代码:

fig, ax = pl.subplots()
fig.set_size_inches(18.5,10.5)
result_df.boxplot(ax=ax)
pl.show()

2
找出哪些点是异常值,并将这些点从数据集中删除后绘制数据集。没有神奇的 pd.DataFrame.boxplot_without_outliers 方法。 - user554546
3
@user554546的上述评论完全是错误的。为了避免任何人使用那个“解决方案”:如果你从数据集中删除数据,你会改变统计数据,因此也会改变箱线图本身。 - ImportanceOfBeingErnest
1个回答

19
重要提示:我可能没有足够地关注,这种情况似乎经常发生,我错过了它是pandas专用的。然而,从我看到的问题来看,它基本上是matplotlib用于在后台绘图的,所以这仍然有效。很抱歉我没有更加小心。
幸运的是,有这样一件事情。在手册中,在页面底部的results: dict标题下,它声明:

fliers:表示延伸到whiskers之外(异常值)的数据点。

设置showfliers=False有希望对您有所帮助。
我不得不提到,我真的很奇怪他们将outliers缩写为fliers。如果这不起作用,手册提供了第二个解决方案:

sym:str或None,默认=None

flier点的默认符号。 如果您不想显示fliers,请输入空字符串('')。 如果为None,则fliers默认为“b +” 如果您需要更多控制,请使用flierprops kwarg。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接