Как добавить полосы ошибок на гистограмму?

Я создал гистограмму, чтобы увидеть количество похожих значений в списке.

data = np.genfromtxt("Pendel-Messung.dat")
stdm = (np.std(data))/((700)**(1/2))
breite = 700**(1/2)

fig2 = plt.figure()
ax1 = plt.subplot(111)
ax1.set_ylim(0,150)
ax1.hist(data, bins=breite)
ax2 = ax1.twinx()
ax2.set_ylim(0,150/700)

plt.show()

Я хочу создать полосы погрешностей (ошибка stdm) в середине каждого столбца гистограммы. Я знаю, что могу создавать полосы ошибок, используя

plt.errorbar("something", data, yerr = stdm) 

Но как мне заставить их начинаться в середине каждого бара? Я думал просто добавить breite/2, но это выдает ошибку.

Извините, я новичок! Благодарю вас!


person Programming Beginner    schedule 02.12.2015    source источник


Ответы (1)


ax.hist возвращает края бина и частоты (n), поэтому мы можем использовать их для x и y при вызове errorbar. Кроме того, вход bins для hist принимает либо целое число для количества бинов, либо последовательность ребер бинов. Я думаю, вы пытаетесь задать ширину бина breite? Если это так, это должно работать (вам просто нужно выбрать соответствующий xmax):

n,bin_edges,patches = ax.hist(data,bins=np.arange(0,xmax,breite))

x = bin_edges[:-1]+breite/2.

ax.errorbar(x,n,yerr=stdm,linestyle='None')
person tmdavison    schedule 02.12.2015