2017-02-01 9 views
1
CH Gayle   17 
YK Pathan   16 
AB de Villiers 15 
DA Warner   14 
SK Raina   13 
RG Sharma   13 
MEK Hussey  12 
AM Rahane   12 
MS Dhoni   12 
G Gambhir   12 

У меня есть такая серия. Я хочу построить плеер по оси x и их соответствующее значение по оси y. Я попробовал этот код:Как показать правильное значение счета в морском дне?

man_of_match=(matches['player_of_match'].value_counts()) 
sns.countplot(x=(man_of_match),data=matches,color='B') 
sns.plt.show() 

Но с этим кодом, он строит частоту числового значения, то есть по оси х 12 получает график и счет на оси у становится 4. Аналогично для 13 по оси х она показывает 2 на оси y.

Как заставить ось x показать имя игрока, а ось y - соответствующее значение игрока.?

ответ

3

sns.countplot предназначен для подсчета для вас. Вы считаете себя value_counts, а затем подсчитываете количество отсчетов. Проходят matches непосредственно sns.countplot

ax = sns.countplot(matches['player_of_match'], color='B') 
plt.sca(ax) 
plt.xticks(rotation=90); 

enter image description here


Если вы хотите ограничить его в топ-10 игроков. Используйте value_counts, как и вы. Но используйте matplotlib напрямую, чтобы построить.

ax = matches['player_of_match'].value_counts().head(10).plot.bar(width=.8, color='R') 
ax.set_xlabel('player_of_match') 
ax.set_ylabel('count') 

enter image description here

Вы можете заставить его выглядеть очень похоже на Сиборн сюжет

kws = dict(width=.8, color=sns.color_palette('pastel')) 
ax = matches['player_of_match'].value_counts().head(10).plot.bar(**kws) 
ax.set_xlabel('player_of_match') 
ax.set_ylabel('count') 
ax.grid(False, axis='x') 

enter image description here

+0

Большое спасибо – user517696

+1

@ user517696 если это решить проблему, пожалуйста, нажмите зеленую стрелку, чтобы отметить ответ, как принято. –

+0

Этот метод отображает всех игроков. Мне просто нужны лучшие 10 игроков, а не весь список. – user517696

 Смежные вопросы

  • Нет связанных вопросов^_^