Гистограмма Pyplot не работает правильно - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь определить гистограмму полутонового изображения. Ниже приведен фрагмент кода, количество бинов (nbins) указано ранее. Когда я НЕ включаю плотность = True, я получаю нормальный график: Гистограмма оттенков серого Pi c

Когда я включаю плотность = 1 или беру гистограмму и вручную ее нормирую ( см. закомментированную строку ниже), я получаю ту же проблему, которая показана на графике ниже: Нормализованная гистограмма

Я не знаю, почему появляются дополнительные линии. Я распечатал значения гистограммы с нормализацией и без нее (вручную и плотность = 1). Они одинаковые. Я пытался печатать с и без установленного нормального дист. линия, но это ничего не изменило. Я думаю, что это может быть связано с тем, как pyplot показывает данные, но не уверен. Я перепробовал все, что могу придумать, но ничего не работает. Кстати, я использую Python 3.8.1. Ayy помощь будет высоко ценится!

xmind = np.min(data)
xmaxd = np.max(data)
xmean = np.mean(data)
xvar = np.var(data)
xwidth = (xmaxd-xmind)/nbins
hist, bin_edges = np.histogram(data, bins = nbins, density=True, range = (xmind,xmaxd))
#hist = hist/(sum(hist)*xwidth)
xh = np.linspace(xmind, xmaxd, nbins)
fig2, ax2 = plt.subplots(1, 1)
titl = 'Histogram Of The Image Pixels \n Mean = ' + str("%.3f" % xmean) + '  Variance = ' + str("%.3f" % xvar)
f = '\\image_file_histogram.png'
fig2.suptitle(titl)
ax2.hist(data, bins = nbins, density = 1)
ax2.bar(bin_edges[:-1], hist, width = xwidth, color='#0504aa',alpha=1.0)
mu, std = norm.fit(data)
xh = np.linspace(xmind, xmaxd, 100)
ph = norm.pdf(xh, xmean, np.sqrt(xvar))
ax2.plot(xh, ph, 'k', linewidth = 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...