Solucionado (ver solução)

Importante

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!

Solucionado
(ver solução)
2
respostas

[Dúvida] Plot do gráfico

No gráfico o código original do curso mostra a legenda da área verde como Tipo, mas também mudou as coisas na biblioteca, e faz mais sentido usar 'Percentual', já que no eixo x esta 'Tipo' e no Y esta 'Percentual'.

# 1. Ajuste: renomeie a coluna logo após o value_counts
df_percentual_tipo = df['Tipo'].value_counts(normalize=True).to_frame(name='Percentual').sort_values('Percentual')

# 2. Plotagem
ax = df_percentual_tipo.plot(kind='bar', figsize=(14, 10), color='green', edgecolor='black',
                        xlabel='Tipos', ylabel='Percentual')     
2 respostas
solução!

Olá, Marcelo. Como vai?

Excelente observação! Você teve uma visão analítica fantástica e muito madura sobre a construção de gráficos para análise exploratória de dados.

Você está coberto de razão: exibir o rótulo da legenda como "Tipo" quando o gráfico na verdade está mapeando a distribuição percentual das proporções gera uma ambiguidade visual que pode confundir o usuário final. Modificar o nome da coluna no DataFrame para Percentual antes de realizar a plotagem resolve esse problema de semântica de forma elegante e correta.

Para agregar ainda mais valor à sua solução e explicar o comportamento da biblioteca que você mencionou, vamos analisar o que mudou nos bastidores do Pandas e do Matplotlib:

Por que o Pandas coloca o nome da coluna na legenda?

Por padrão, quando chamamos o método .plot(kind='bar') diretamente de um DataFrame, o Pandas utiliza o nome das colunas para montar automaticamente a legenda da área colorida (os elementos geométricos).

No código antigo do curso, a estrutura do value_counts(normalize=True).to_frame() gerava um DataFrame onde a coluna de valores herdava o nome original da série ('Tipo'). Com as atualizações mais recentes da biblioteca, essa vinculação ficou ainda mais rígida. Ao fazer o ajuste manual utilizando o parâmetro name='Percentual':

df_percentual_tipo = df['Tipo'].value_counts(normalize=True).to_frame(name='Percentual').sort_values('Percentual')

Você alterou o metadado da coluna. Assim, o Pandas lê o novo nome e gera a legenda correta de forma automatizada, poupando linhas extras de código de formatação.


Duas Dicas Avançadas para Deixar o seu Gráfico ainda Melhor

Como o seu objetivo é tornar o gráfico o mais claro e legível possível, separei duas sugestões de acabamento que conversam perfeitamente com a sua linha de raciocínio:

1. Exibir o Eixo Y em Formato de Porcentagem (%)

Como o parâmetro normalize=True devolve os valores como frações decimais (ex: 0.15, 0.42), o eixo Y do seu gráfico está exibindo esses números brutos. Para que o leitor entenda o gráfico de imediato, podemos importar o módulo de formatação do Matplotlib (PercentFormatter) para converter o eixo automaticamente para o formato de porcentagem real (ex: 15%, 42%).

2. Remover a Legenda Desnecessária

Repare que o seu gráfico possui apenas uma única barra por categoria (é um gráfico univariado). Quando temos apenas uma cor de barra no gráfico inteiro e o título do eixo Y já diz "Percentual", a caixinha flutuante da legenda se torna redundante. Podemos desativá-la com legend=False.

Veja como o seu código de plotagem fica aplicando essas boas práticas de visualização de dados:

import matplotlib.ticker as mtick

# 1. Seu ajuste perfeito no DataFrame
df_percentual_tipo = df['Tipo'].value_counts(normalize=True).to_frame(name='Percentual').sort_values('Percentual')

# 2. Plotagem refinada (adicionado o legend=False)
ax = df_percentual_tipo.plot(kind='bar', figsize=(14, 10), color='green', edgecolor='black',
                            xlabel='Tipos', ylabel='Percentual', legend=False)

# 3. Ajuste de acabamento: transforma o eixo Y em porcentagem real (ex: 20%)
ax.yaxis.set_major_formatter(mtick.PercentFormatter(1.0))

Modificar o código para acompanhar as evoluções das ferramentas e focar na clareza da comunicação dos dados é o que define um bom Cientista de Dados. Parabéns pelo senso crítico e por compartilhar essa excelente solução com a comunidade do fórum!

Espero que possa ter lhe ajudado!

Valeu evandro esta última dioca das porcentagem deixa o gráfico mais usável, grato.