как перебирать оси морских столбцов и отображать значения на столбцах - PullRequest
0 голосов
/ 03 ноября 2019

Я хотел бы создать барплот, как показано ниже. Мне нужно показывать значения в процентах на каждом баре, как показано ниже. Я делаю это с помощью Seabron Barplot.

Я искал переполнение стека, но не смог их использовать. Мой код выглядит примерно так:

plt.figure(figsize=(10,6))
clrs = ['grey' if (x < max(df1['Score'])) else 'red' for x in df1['Score'] ]
sns.barplot(x='Languages',y='Score',data=df1,palette=clrs)

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


  plt.xlabel("")
  plt.ylabel("")
  frame1=plt.gca()

  frame1.axes.get_yaxis().set_ticks([])

for bar in bars:
    height = bar.get_height()
    plt.gca().text(bar.get_x() + bar.get_width()/2, bar.get_height() - 5, str(int(height)) + '%', 
             ha='center', color='w', fontsize=11)
  plt.show()

, но выдает следующую ошибку: enter image description here

enter image description here

1 Ответ

0 голосов
/ 04 ноября 2019

Ошибка говорит вам, что итератор bar интерпретируется как объект модуля.

Попробуйте просто изменить ваш цикл следующим образом:

for b in bars:
    height = b.get_height()
    plt.gca().text(b.get_x() + b.get_width()/2, b.get_height() - 5, str(int(height)) + '%', 
             ha='center', color='w', fontsize=11)
...