Olá, Marcelo. Como vai?
Mais uma excelente contribuição! É muito interessante ver como você continuou explorando as formas de customizar esse gráfico para deixá-lo com a semântica perfeita. O fórum ganha muito com esse tipo de registro de soluções.
O seu código está correto e alcançou o objetivo de alterar o rótulo do preenchimento. No entanto, analisando as etapas que você seguiu, quero te mostrar uma otimização de código muito bacana que vai te poupar uma linha de processamento no Pandas e deixar o seu script ainda mais limpo.
Entendendo a redundância no código
No seu script atual, você realiza a troca do nome da coluna em dois momentos seguidos:
# Aqui você já cria o DataFrame definindo o nome da coluna como 'Percentual'
df_campo_renomeado = df['Tipo'].value_counts(normalize=True).to_frame(name='Percentual').sort_values('Percentual')
# Logo na sequência, você usa o .rename() para mudar de 'Percentual' para 'Percentuais'
df_campo_renomeado.rename(columns={'Percentual': 'Percentuais'}, inplace=True)
O que dá para melhorar? O método .to_frame(name='...') aceita qualquer texto que você queira dar para a coluna final de valores de forma direta. Portanto, você pode passar a palavra 'Percentuais' diretamente dentro dele, eliminando a necessidade de chamar a função .rename() na linha de baixo.
O Código Otimizado
Veja como o seu código fica mais direto e elegante mantendo exatamente o mesmo resultado visual no gráfico:
# 1. Cria o DataFrame e já define o nome definitivo da coluna como 'Percentuais'
df_campo_renomeado = df['Tipo'].value_counts(normalize=True).to_frame(name='Percentuais').sort_values('Percentuais')
# 2. Plotagem direta usando o DataFrame otimizado
ax = df_campo_renomeado.plot(kind='bar', figsize=(14, 10), color='green', edgecolor='black',
xlabel='Tipos', ylabel='Percentual')
Por que o Pandas antigo mostrava "proportion"?
Essa palavra "proportion" que apareceu no seu teste inicial é o comportamento padrão das versões mais recentes do Pandas (a partir da versão 2.0.0). Antigamente, o método .value_counts() com normalize=True gerava uma coluna com o mesmo nome da série original ('Tipo').
Agora, a biblioteca se modernizou e passou a nomear essa coluna calculada automaticamente como proportion para deixar claro que se trata de uma proporção estatística. Saber dominar o parâmetro name= dentro do .to_frame() ou usar o .rename() é a habilidade exata necessária para sobrescrever esse novo comportamento padrão da ferramenta.
Parabéns por continuar testando e refinando seus códigos até chegar no design ideal!
Espero que possa ter lhe ajudado!