Na aula de 01 no item 04 que trata de análise exploratória dos dados, foi apresentada a função para fazer gráficos. Teria como ordenar no gráfico as barras de forma decrescente, ou seja, da maior barra para a menor?
Assim, a análise fica mais fácil.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Na aula de 01 no item 04 que trata de análise exploratória dos dados, foi apresentada a função para fazer gráficos. Teria como ordenar no gráfico as barras de forma decrescente, ou seja, da maior barra para a menor?
Assim, a análise fica mais fácil.
Olá Adriana! Tudo bem com você?
Tem como realizar essa ordenação dentro do próprio método .countplot() com o parâmetro order, que de acordo com a documentação é a:
"Ordem para plotar os níveis categóricos, caso contrário, os níveis são inferidos dos objetos de dados."
Então para esse parâmetro devemos passar a ordem dos estados em ordem decrescente. Fazemos isso da seguinte forma:
order=dados[st].value_counts().indexO método .value_counts() já retorna a ordem dos estados que tem mais ocorrência para os estados que tem menos ocorrências, como queremos apenas saber quais estados são, pegamos o índices com o .index.
O código completo fica da seguinte forma:
def plot_perc(st,dados):
plt.figure(figsize=(20,8))
g = sns.countplot(x= st,data=dados,
order=dados[st].value_counts().index,
orient='h')
g.set_ylabel('Contagem',fontsize=17)
sizes = []
for p in g.patches:
height = p.get_height()
sizes.append(height)
g.text(p.get_x() + p.get_width()/1.6,
height+200,
'{:1.2f}%'.format(height/116581*100),
ha = 'center',va='bottom',fontsize=12)
g.set_ylim(0,max(sizes)*1.1)A documentação do método .value_counts() pode ser encontrada nesse link.
Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.
:)