Добавьте значения над столбцами на гистограмме в python - PullRequest
0 голосов
/ 27 мая 2020

У меня есть следующий код:

import matplotlib.pyplot as plt
import numpy as np

plt.figure()

languages =['Python', 'SQL', 'Java', 'C++', 'JavaScript']
pos = np.arange(len(languages))
popularity = [56, 39, 34, 34, 29]

bars = plt.bar(pos, popularity, align='center', linewidth=0, color='lightslategrey')
bars[0].set_color('#1F77B4')

plt.xticks(pos, languages, alpha=0.8)

plt.ylabel("")
plt.title('Top 5 Languages for Math & Data \nby % popularity on Stack Overflow', alpha=0.8)

plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')

for spine in plt.gca().spines.values():
    spine.set_visible(False)

for index, value in enumerate(str(popularity)): 
    plt.text(index,value,str(popularity))

plt.show()

Я пытаюсь пометить значения по оси Y над каждой полосой (значения Y).

Однако это код этого не делает.

Может ли кто-нибудь указать мне, где я ошибаюсь?

1 Ответ

1 голос
/ 27 мая 2020

Вы почти у цели; Вам нужно только изменить последнее, чтобы l oop было таким:

...
...
for index, value in enumerate(popularity):
    plt.text(index,value, str(value))
plt.show()

, который будет генерировать этот график: enter image description here

...