如何将x lim设置为matplotlib直方图的数据系列的99.5百分位数?

时间:2015-06-22 19:14:31

标签: python numpy matplotlib histogram outliers

我正在用matplotlib抽出一些直方图。问题在于,由于有一个或两个异常值,我的整个图形非常小并且由于绘制了两个单独的直方图而几乎不可能读取。我遇到问题的解决方案是将异常值降低到 99 / 99.5百分位附近。我尝试过使用:

plt.xlim([np.percentile(df,0), np.percentile(df,99.5)]) 
plt.xlim([df.min(),np.percentile(df,99.5)])

似乎它应该是一个简单的修复,但我缺少一些关键信息来实现它。任何意见都会非常感谢,提前谢谢。

1 个答案:

答案 0 :(得分:1)

要将焦点限制在99%的中间位置,您可以执行以下操作:

trimmed_data = df[(df.Column > df.Columnquantile(0.005)) & (df.Column < df.Column.quantile(0.995))]

然后你可以在trimmed_data上进行直方图。究竟如何排除异常值更像是一个统计问题而不是Python问题,但基本上我在评论中建议的想法是使用你可以保护的任何方法清理数据集,然后执行所有内容(图表,统计数据等)仅在清理过的数据集上,而不是试图调整每个单独的图表,使其看起来正确,同时仍然有异常数据。