Первое значение xticklabels отсутствует при построении панд DataFrame - PullRequest
0 голосов
/ 06 июля 2018

Я новичок в Pandas и matplotlib и хочу построить этот DataFrame

      season   won               team  matches    pct_won
0  2008/2009  28.0  Manchester United       38  73.684211
1  2009/2010  27.0  Manchester United       38  71.052632
2  2010/2011  23.0  Manchester United       38  60.526316
3  2011/2012  28.0  Manchester United       38  73.684211
4  2012/2013  28.0  Manchester United       38  73.684211
5  2013/2014  19.0  Manchester United       38  50.000000
6  2014/2015  20.0  Manchester United       38  52.631579
7  2015/2016  19.0  Manchester United       38  50.000000

Используя эти строки кода:

ax = aggregated_frame.plot(x='season', y='pct_won', figsize=(8,8), marker='o', rot=90, title='Performance by season of Team: {}'.format(aggregated_frame.iloc[0]['team']))
ax.set_xticklabels(aggregated_frame.season)
ax.set_xlabel('')
ax.yaxis.grid()
ax.yaxis.set_major_formatter(mtick.PercentFormatter())
ax.legend(['Percentage of Matches Won'], fontsize=14)
for item in ([ax.title, ax.xaxis.label] + ax.get_xticklabels() + ax.get_yticklabels()):
    item.set_fontsize(14);

Но первое значение моего xticklabels удаляется в результирующем графике:

Result_By_Plotting

Я пробовал несколько вариантов, даже просто установил ax.set_xticklabels([1,2,3,4,5,6,7,8]), но первое значение удаляется каждый раз.

Что здесь не так? Любая помощь приветствуется.

Кроме того: Почему значения season не используются в качестве метки? Если я опущу set_xticklabels, то по оси X этикетка вообще не печатается.

1 Ответ

0 голосов
/ 06 июля 2018

Вы никогда не должны устанавливать метки, не устанавливая также позиции тиков. То есть если вы используете ax.set_xticklabels, вам всегда нужно также использовать ax.set_ticks (иначе могут быть исключения из этого, и в этом случае вам нужно точно знать, что вы делаете).

Здесь:

ax.set_xticks(range(len(df)))
ax.set_xticklabels(df.season)

производит

enter image description here

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