Я пытаюсь добавить итерацию поверх гистограммы в блокноте jupyter, чтобы увидеть ее значение по сравнению со значениями гистограммы. Я попробовал следующий код:
f histogram_thresholding(matrix, bins, threshold_value):
plt.hist(matrix.flatten(), bins)
plt.axvline(threshold_value, linewidth = 0.2, color = "green",
label = "Threshold value = "+"{:.2f}".format(threshold_value))
plt.legend()
plt.xlabel("Intensity")
plt.ylabel("Number of pixels")
plt.show()
interact(histogram_thresholding, matrix = fixed(model_3D_matrix),
threshold_value = (model_3D_matrix.min(),model_3D_matrix.max()))
, но затем гистограмма вычисляется и строится каждый раз, когда я меняю итеративное значение, что занимает много времени.
гистограмма с итерацией значение
Затем я попытался сначала построить гистограмму, а затем запустить функцию с итеративным значением, представляя, что matplotlib использует удержание команды и строит вертикальную линию поверх гистограммы. Вместо этого гистограмма и вертикальная линия были построены отдельно.
def histogram_thresholding(threshold_value):
plt.axvline(threshold_value, linewidth = 0.2, color = "green",
label = "Threshold value = "+"{:.2f}".format(threshold_value))
plt.legend()
plt.xlabel("Intensity")
plt.ylabel("Number of pixels")
plt.show()
plt.hist(model_3D_matrix.flatten(), bins = 100)
interact(histogram_thresholding, threshold_value = (model_3D_matrix.min(),model_3D_matrix.max()))
гистограмма и вертикальное значение были нанесены отдельно
я хотел отобразить информацию точно так же, как первый отпечаток, но не нужно каждый раз строить гистограмму, а только вертикальную линию поверх нее, чтобы сэкономить время. Может кто-нибудь помочь мне, как это сделать?