1
resposta

Ordenar os valores no grafico do maior para o menor

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.

1 resposta

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().index

O 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.

:)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!