Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Distplot descontinuado

Olá, na aula o professor utiliza a função Distplot, porém o Python lança o seguinte aviso:

FutureWarning: distplot is a deprecated function and will be removed in a future version. Please adapt your code to use either displot (a figure-level function with similar flexibility) or histplot (an axes-level function for histograms).

Entretanto ao usar histplot ou displot, o gráfico não fica do mesmo jeito.

Como que devemos adaptar o código para ter um gráfico semelhante sem usar o Distplot?

2 respostas
solução!

Olá, João, tudo bem?

Que legal que está buscando compreender como atingir resultados semelhantes com outras funções. Vou explicar um pouco sobre como chegar a um resultado próximo ao distplot usando o histplot, belezinha?

Primeiramente, vamos usar como exemplo a avaliação da variável renda até 20.000 reais, como desenvolvido pelo professor. Usando o distplot, que gera o warning, percebemos que o nosso código seguiu desta forma:

ax = sns.distplot(dados.query('Renda < 20000').Renda)
ax.figure.set_size_inches(12, 6)
ax

Em que o gráfico resultante foi:

Gráfico de distribuição da renda da população estudada com os valores de densidade mais próximos à esquerda do gráfico apresentando uma distribuição assimétrica a direita. Nesse gráfico, temos também a curva 'kde' que é a curva gausiana que representa a distribuição de nossos dados.

 

Mas como posso usar 'histplot' para gerar o mesmo gráfico?

A função histplot é responsável por gerar histogramas para demonstrar a distribuição de uma dada variável num DataFrame.

Um histograma é uma ferramenta visual clássica que apresenta a distribuição de nossos dados contando o número de observações presentes dentro de certos intervalos (bins).

Como no nosso caso queremos normalizar os nossos dados para apresentarmos a densidade deles (área total do histograma igual a 1), utilizaremos o parâmetro estatístico de densidade (stat = "density") .

O parâmetro kde=True serve para gerarmos a curva gaussiana estimada que representa a distribuição dos nossos dados. É a partir dessa curva que iremos observar e verificar a sua simetria/assimetria de acordo com a abordagem do professor nesse curso.

Assim, um código adaptado possível para usar o histplot no lugar do distplot seria:

# Método Histplot
#
# Parâmetros: stat = estatística agregada a função --> "density" (densidade) o padrão é "count" (contagem)           
#             element = modo de exibição dos elementos (bins) --> "step" (degraus) o padrão é "bars" (barras)
#             bins = número de intervalos desejados --> o padrão é "auto" 
#             kde = curva que caracteriza a distribuição --> o padrão é False 
#             color = cor dos dados(hexadecimal ou seguindo a biblioteca matplotlib)
#             lw = espessura da linha dos intervalos (zerei para não ter espessura)
ax = sns.histplot(dados.query('Renda < 20000').Renda, stat="density", element="step", bins=50, kde=True, color='#74acd4', lw=0)
ax.figure.set_size_inches(12, 6)
ax

O gráfico gerado a partir desse código é:

Gráfico de distribuição da renda da população estudada com os valores de densidade mais próximos à esquerda do gráfico apresentando uma distribuição assimétrica a direita. Nesse gráfico, temos também a curva 'kde' que é a curva gausiana que representa a distribuição de nossos dados.

 

Sinta-se livre para modificar os parâmetros e testar diferentes configurações para experimentar essa função e suas potencialidades.

Aconselhamos também dar uma lida na documentação do histplot da biblioteca seaborn para possíveis consultas e testes.

Espero ter ajudado e qualquer dúvida é só chamar!

Forte abraço!

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

Olá Afonso! Muito obrigado pela resposta, foi uma ótima explicação!

Eu estava pensando que seria necessário mudar algo dos dados em si, e não prestei atenção em trabalhar com os parâmetros.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software