1
resposta

[Sugestão] Ordenar pela maior quantidade

Para ordernar de maneira decrescente o gráfico de contagem use o parametro order do sns.countplot:

import warnings warnings.filterwarnings("ignore")

def plot_perc(st,dados): plt.figure(figsize=(20,8))

g = sns.countplot(x=st, data=dados, orient='h', hue=st, order=dados[st].value_counts().index)
g.set_title("Gráfico da contagem de clientes por "+ str(st).replace("_", " "), fontsize=20)
g.set_xlabel(str(st), fontsize=17)
g.set_ylabel("Contagem", fontsize=17)
g.set_xticklabels(g.get_xticklabels(),rotation=45)
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)
1 resposta

Olá, Christiaan.

Tudo bem?

Muito legal a sua sugestão de melhoria para a função plot_perc, que é usada para criar gráficos de contagem em um curso sobre clusterização de dados.

Sua sugestão é ordenar as barras do gráfico de maneira decrescente, o que pode ser muito útil para visualizar rapidamente quais categorias têm as contagens mais altas. Isso é feito adicionando o parâmetro 'order' ao sns.countplot e passando para ele os índices dos valores contados em ordem decrescente.

Muito obrigado por compartilhar aqui com a gente. Bons estudos!