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

[Dúvida] Plotagem da distribuição de frequência acumulada

Olá,

Por favor, gostaria de saber como plotar o gráfico de distribuição de frequência acumulada na versão atual do pandas, em que "distplot" está descontinuada. Na aula, o código é:

ax = sns.distplot(dados.Idade,
                  hist_kws = {'cumulative': True},
                  kde_kws = {'cumulative': True}),
ax.figure.set_size_inches(14, 6)
ax.set_title('Distribuição de Frequências Acumulada', fontsize=18)
ax.set_ylabel('Acumulado', fontsize=14)
ax.set_xlabel('Anos', fontsize=14)
ax

Tentei usar o "displot", como já consegui para outros casos, mas, especificamente para a distribuição de frequência acumulada, não estou conseguindo. Tentei utilizar a seguinte sugestão, que foi dada em um tópico mais antigo ( distplot is a deprecated function - Publicado 3 anos atrás , em 05/10/2020):

grid = sns.displot(dados.Idade, 
                  kde = True,
                  cumulative=True,
                  bins = 10)

ax = grid.ax
ax.figure.set_size_inches(14, 6)
ax.set_title('Distribuição de Frequências Acumulada', fontsize=18)
ax.set_ylabel('Acumulado', fontsize=14)
ax.set_xlabel('Anos', fontsize=14)
ax

Mas tenho como retorno o erro: **RuntimeError: Cumulative KDE evaluation requires scipy **

Mesmo após importar o scipy, o erro persiste.

Seguem as versões de biblioteca que utilzo: Versão do pandas -> 2.0.3 Versão do numpy -> 1.25.2 Versão do seaborn -> 0.12.2 Versão do scipy -> 1.11.1

2 respostas
solução!

Oi, tudo bem?

O problema que você está tendo, pode ocorrer por conta da reinicialização do ambiente de execução que faz com que todas as importações precisem ser refeitas. Uma possível solução é importar novamente as bibliotecas utilizadas e a fonte de dados. Para isso basta rodar os comandos abaixo:

import pandas as pd
import seaborn as sns
import numpy as np

dados = pd.read_csv('dados.csv')

Em seguida você pode usar o segundo código compartilhado em sua postagem original:

grid = sns.displot(dados.Idade, 
                  kde = True,
                  cumulative=True,
                  bins = 10)
ax = grid.ax
ax.figure.set_size_inches(14, 6)
ax.set_title('Distribuição de Frequências Acumulada', fontsize=18)
ax.set_ylabel('Acumulado', fontsize=14)
ax.set_xlabel('Anos', fontsize=14)
ax

Espero ter ajudado. Caso tenha dúvidas, não hesite em postar no fórum.

Abraços!

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

Boa tarde, Rodrigo! Cara, havia tentado de tudo, mas realmente esqueci esse detalhe. Deu certo. Obrigado!