Python:比较直方图与不同的bin大小

时间:2019-03-07 12:20:53

标签: python matplotlib histogram

我想比较来自评估板的2个直方图,该评估板已经将计数的事件合并到直方图中。我正在从具有不同事件数量的2个通道中获取数据(实际上,一个通道仅是背景,一个是背景+信号,这是一种通常的实验设置),并且具有不同数量的容器,不同的容器宽度和不同的容器中心位置

数据文件如下:

HSlice [CH1]
...
  44.660      46.255    6
  46.255      47.850    10
  47.850      49.445    18
  49.445      51.040    8
  51.040      52.635    28
  52.635      54.230    4
  54.230      55.825    18
  55.825      57.421    183
  57.421      59.016    582
  59.016      60.611    1786
...
HSlice [CH2]
...
  52.022      53.880    0
  53.880      55.738    9
  55.738      57.596    213
  57.596      59.454    728
  59.454      61.312    2944
  61.312      63.170    9564
...

前两列给出了相应bin的边界(即时间),最后一列代表了此时间范围内的事件数。

现在我要进行某种背景缩减,也就是说,从“背景+信号”直方图中减去背景直方图,以获得实际信号的时间轨迹。由于直方图完全不同,因此无法按行进行此操作。 python中是否有一个简单的函数或一种优雅的解决方案,如何使数据具有可比性(例如,通过在一个直方图中的两个数据点之间进行插值以适合另一个直方图的bin的位置)而不会弄乱由实验(既不会使情况变得更糟,也不会假装更好的时间分辨率)。

谢谢

lepakk

1 个答案:

答案 0 :(得分:1)

通道2的存储区大小大于通道1(1.858与1.595)。因此,我会将值从较小的垃圾箱转移到较大的垃圾箱。这将导致分辨率降低,但是我认为这比从较大的容器转换为较小的容器并因此提高分辨率更为诚实。

现在,我的方法是从通道1中的bin中获取所有值,并将其分配给其时间bin的中心。您真的不知道它们最初在储物箱中的确切位置,所以这是您作弊的地方。

现在根据其新的时间值将通道1的值填充到通道2的bin中。

那是我的第一个方法。