Я пытаюсь построить 2D (in) эффективность в matplotlib, мне нужно соотношение двух гистограмм.Я использую panda DF, чтобы заполнить их:
X_arr = np.array(df['X'])
Y_arr = np.array(df['Y'])
Xeff_arr = np.array(df['X'][(df['condition'] == 1)]
Yeff_arr = np.array(df['Y'][(df['condition'] == 1)]
plt.figure()
denom_histo, xedges, yedges = np.histogram2d(Y_arr, X_arr, bins=(100, 100))
eff_histo, xedges, yedges = np.histogram2d(Yeff_arr, Xeff_arr, bins=(100, 100), weights=-1)
ones, xedges, yedges = np.histogram2d(np.array(100*[1]), np.array(100*[1]), bins=(100, 100))
ineff_histo = ones - eff_histo
ineff_histo = ineff_histo / denom_histo
plt.show()
Мне нужна неэффективность, поэтому я вычисляю это как "1 - (data_passing_condition) / (all_data)". Также это предотвращает деление на ноль.
Но я получаю ошибки, такие как «ValueError: объект слишком малой глубины для нужного массива»
Не могли бы вы дать мне знать, как лучше всего работать с 2D-графиками в matplot?
Приветствия