Я думаю, что предполагаемое поведение - нарисовать сумму обеих гистограмм . Вы можете сделать это путем объединения массивов перед построением графика:
ax.hist2d(np.concatenate([dist1x, dist2x]),
np.concatenate([dist1y, dist2y]),
bins=100, cmap='viridis')
(я немного изменил число, чтобы убедиться, что два перекрытия BLOB-объектов.)
Поведение по умолчанию в ROOT для SAME
с TH2F
, вероятно, нежелательно.
Вторая гистограмма рисуется над другой, перезаписывая цвет заливки ячеек. Информация из первой гистограммы отбрасывается в каждую ячейку, если во второй гистограмме есть хотя бы одно событие.
Чтобы воспроизвести это поведение, я бы предложил использовать numpy.histogram2d
. Установите ячейки первой гистограммы на ноль, если есть записи во второй, а затем выведите сумму обоих.
bins = np.linspace(0, 20, 100), np.linspace(0, 20, 100)
hist1, _, _ = np.histogram2d(dist1x, dist1y, bins=bins)
hist2, _, _ = np.histogram2d(dist2x, dist2y, bins=bins)
hist1[hist2 > 0] = 0
sum_hist = hist1 + hist2
plt.pcolormesh(*bins, sum_hist)
Если две гистограммы не имеют общего заполненного бина, эти два поведения идентичны.