Показать значение в гистограмме - PullRequest
0 голосов
/ 27 февраля 2019

Я создал этот график и не могу правильно отобразить значение для каждого бара.Вот мой гистограмма:

enter image description here

Это мой код для создания вышеуказанного графика:

X_perc = [10, 7, 3, 5, 5]
cols = ['3.1-4.14', '4.14-5.18', '6.22-7.26', '7.26-8.3', '5.18-6.22']
data = np.array([[10, 7, 5, 5, 3],])

fig, ax=plt.subplots()
for i, (name, v) in enumerate(zip(cols, X_perc)):
    bottom=np.sum(data[:,0:i], axis=1)
    ax.bar(1,data[:,i], bottom=bottom, label="{}".format(name))
    ax.text(0.7, (v*i)/v * i + v + i, str(v), fontweight='bold')

plt.legend(framealpha=1)
plt.axis([-10, 10, 0, 31])
plt.tick_params(
    axis='x',          
    which='both',      
    bottom=False,      
    top=False,         
    labelbottom=False) 

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете использовать совокупную сумму позиций для аннотирования ваших столбцов с накоплением

positions = np.cumsum(data)

fig, ax=plt.subplots()
for i, (name, v) in enumerate(zip(cols, X_perc)):
    bottom=np.sum(data[:,0:i], axis=1)
    ax.bar(1,data[:,i], bottom=bottom, label="{}".format(name))
    ax.text(0.7, positions[i], str(v), fontweight='bold') # Use it here

enter image description here

...