我目前正在使用 matplotlib 绘制一些直方图。问题是,由于一两个异常值,我的整个图表非常小,并且由于绘制了两个单独的直方图而几乎无法阅读。我遇到问题的解决方案是将异常值降低到 99/99.5 百分位数 左右。我试过使用:
plt.xlim([np.percentile(df,0), np.percentile(df,99.5)])
plt.xlim([df.min(),np.percentile(df,99.5)])
看起来应该是一个简单的修复,但我缺少一些关键信息来实现它。任何输入将不胜感激,提前致谢。
要将焦点限制在中间 99% 的值上,您可以这样做:
trimmed_data = df[(df.Column > df.Column.quantile(0.005)) & (df.Column < df.Column.quantile(0.995))]
然后您可以在 trimmed_data
上绘制直方图。确切地说,如何排除异常值更像是一个统计问题,而不是 Python 问题,但基本上我在评论中建议的想法是使用任何你可以捍卫的方法清理数据集,然后做一切(绘图、统计数据等)仅在清理后的数据集上,而不是尝试调整每个单独的绘图以使其看起来正确,同时仍然有异常数据。
我是一名优秀的程序员,十分优秀!