【问题标题】:Points outside histogram range are discarted from plot直方图范围之外的点从图中丢弃
【发布时间】:2020-03-13 13:39:55
【问题描述】:

我正在绘制一个值的直方图,并且我希望所有直方图的 bin 值范围相同,因此可以比较图。为此,我指定了一个向量 x,其中包含每个 bin 的值和范围。

data = np.array([0.1, 0.1, 0.2, 0.2, 0.2, 0.32])
x = np.linspace(0, 0.2, 9)
plt.hist(data, x)

我注意到,如果我将 x 的范围指定为 0 到 0.2 之间,那么大于 0.2(在示例中为 0.32)的值将从图中丢弃。

有没有办法在最后一个 bin 中累积所有大于 0.2 的值,在第一个 bin 中累积所有小于 0.0 的值?

我当然可以做类似的事情

data[data>0.2] = 0.2
data[data<0.0] = 0.0

但我不想修改我的原始数组,也不必复制它,除非没有其他方法。

【问题讨论】:

  • 您的情节不可重现。

标签: python numpy matplotlib histogram


【解决方案1】:

您可以将bins 参数作为带有分界的数组传递到您想要的任何位置。它不必是线性间隔的。不过,这将使条形图具有不同的宽度。对于您的特定情况,您可以使用数据数组的.clip 方法。

data = np.array([0.1, 0.1, 0.2, 0.2, 0.2, 0.32])
x = np.linspace(0, 0.2, 9)
plt.hist(data.clip(min=0, max=0.2), x)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2018-04-09
    相关资源
    最近更新 更多