Горизонтальный гистограмма Matplotlib добавляет значения к барам - PullRequest
0 голосов
/ 05 сентября 2018

Со следующим кодом:

mixedgenres.sort_values(by = "rating").plot(kind = "barh", color = "steelblue", legend = False, grid = True) 
for i, v in enumerate(mixedgenres.rating):
    plt.text(v + 1, i - 0.25, str(round(v, 2)), color='steelblue')

Я получаю следующий график: enter image description here

Как я могу включить значения внутри фрейма графика и выровнять по левому краю, чтобы они были расположены друг над другом в ряд?

Вот пример данных, чтобы помочь выяснить:

sampledata = {'genre': ["Drama", "Western", "Horror", "Family", "Music", "Comedy", "Crime", "War"], 
              'rating': [7, 7.6, 8, 8.1, 7.8, 6.9, 7.5, 7.7]}
test = pd.DataFrame(sampledata, index = sampledata["genre"])
test

Пример данных графика

test.sort_values(by = "rating").plot(kind = "barh", color = "steelblue", legend = False, grid = True) 
for i, v in enumerate(test.rating):
    plt.text(v + 1, i - 0.25, str(round(v, 2)), color='steelblue')

И результат

enter image description here

1 Ответ

0 голосов
/ 05 сентября 2018

Вот полное рабочее решение (пропуская импорт). Две вещи: 1) Вы использовали несортированные значения рейтинга для маркировки и 2) Вы добавляли слишком много смещения / смещения по горизонтали. РЕДАКТИРОВАТЬ: вертикальное выравнивание текста в соответствии с предложением @ ImportanceOfBeingErnest

fig = plt.figure()
ax = fig.add_subplot(111)

sampledata = {'genre': ["Drama", "Western", "Horror", "Family", "Music", "Comedy", "Crime", "War"], 
              'rating': [7, 7.6, 8, 8.1, 7.8, 6.9, 7.5, 7.7]}
test = pd.DataFrame(sampledata,  index=sampledata['genre'])
test.sort_values(by = "rating").plot(kind = "barh", color = "steelblue", legend = False, grid = True, ax = ax) 
plt.xlim(0, 8.9)

for i, v in enumerate(sorted(test.rating)):
    plt.text(v+0.2, i, str(round(v, 2)), color='steelblue', va="center")

выход enter image description here

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