【发布时间】:2013-03-28 02:20:39
【问题描述】:
pyplot.hist() 文档指定在为直方图设置范围时“忽略上下异常值”。
是否可以让直方图的第一个和最后一个 bin 包含所有异常值而不改变 bin 的宽度?
例如,假设我想查看具有 3 个 bin 的范围 0-3:0-1, 1-2, 2-3(为简单起见,我们忽略完全相等的情况)。我希望第一个 bin 包含从负无穷到 1 的所有值,最后一个 bin 包含从 2 到无穷大的所有值。但是,如果我明确地将这些箱设置为跨越该范围,它们将非常宽。我希望它们具有相同的宽度。我正在寻找的行为类似于 Matlab 中 hist() 的行为。
显然我可以numpy.clip() 数据并绘制它,这将给我我想要的。但是我很感兴趣,如果有一个内置的解决方案。
【问题讨论】:
-
听起来您有一个两行解决方案 (
numpy.clip(); pyplot.hist()),并且您想要一个单行解决方案。虽然我猜hist()的clip关键字会很好,但我认为没有人会费心去实现它,因为它太基础了。当然,您可以随时向 matplotlib 提交补丁 :-)。 -
是的,@Evert 是对的,clip 是最好的解决方案。我想说
pyplot.hist()没有建立这个可能是因为如果不仔细注释它会产生误导性的情节。 -
@Evert 好的,谢谢。我只是想看看我没有错过一些更好的解决方案来获得这种行为。
标签: python numpy matplotlib