data = np.array((1.1, 2.2, 2.2, 3.3, 3.6, 4.2, 4.3, 4.4))
barMin, barMax = np.min(data), np.max(data)

left = np.arange(barMin,barMax,barWidth)
height = np.zeros((len(left))
for i in range(len(data)):
    height[int((data[i]-barMin)/barWidth)] += 1
height /= float(np.sum(height))

plt.figure()
plt.bar(left,height,align='edge',width=barWidth)
plt.show()