Вы должны передать массив Y и массив Err функции bar
. Преобразуйте ваши данные из массива точек в массив массивов Y и Err:
ind = np.arange(2)
width = 0.35
data = [(0.5, 0.1), (0.8, 0.3)]
y, err = list(zip(*data)) # Transpose the data array
plt.bar(ind, y, width, yerr=err)
plt.ylabel('scratchwidth /cm')
plt.show()
Или, поскольку вы уже используете numpy, используйте массив numpy:
....
data = np.array([(0.5, 0.1), (0.8, 0.3)])
plt.bar(ind, data[:,0], width, yerr=data[:,1])
....