Combinando MTPL, SB, PD, NP na criação de gráficos
Matplotlib, Seaborn, NumPy e Pandas na criação de gráfico estatístico
Vamos utilizar todas as bibliotecas para criar um gráfico de dispersão com um modelo de regressão
Criando os dados a serem manipulados
python
# valores randômicos
np.random.seed(42)
n = 1000
pct_smokers = 0.2
# Variáveis
flag_fumante = np.random.rand(n) < pct_smokers
idade = np.random.normal(40,70, n)
altura = np.random.normal(170,10,n)
peso = np.random.normal(70,10,n)
# DataFrame
dados = pd.DataFrame({'altura': altura, 'peso': peso, 'flag_fumante': flag_fumante})
# Cria os dados para a variável fumante
dados['flag_fumante'] = dados['flag_fumante'].map({True: 'Fumante', False: 'Não Fumante'})
Visualizando os dados
python
dados.head()
out:
| altura | peso | flag_fumante | |
|---|---|---|---|
| 0 | 155.936825 | 78.745171 | Não Fumante |
| 1 | 169.168944 | 63.502348 | Não Fumante |
| 2 | 154.952796 | 57.967991 | Não Fumante |
| 3 | 177.600560 | 59.579556 | Não Fumante |
| 4 | 170.824398 | 65.127971 | Fumante |
Criando o gráfico de dispersão
python
# Style
sea.set(style = 'ticks')
# lmplot
sea.lmplot(x = 'altura',
y = 'peso',
data = dados,
hue = 'flag_fumante',
palette = ['tab:blue', 'tab:orange'],
height = 7)
# Labels e Título
plt.xlabel('Altura (cm)')
plt.ylabel('Peso (kg)')
plt.title('Relação entre altura e peso de fumantes e não fumantes')
# Remove as bordas
sea.despine()
# Mostrando o gráfico
plt.show()
out:

Podemos criar infinidades de gráficos, muitos com apenas 1 linha de código, se termos o conhecimento de como manipularmos, o céu é o limite.
Existem milhares de formas de fazer a mesma coisa, mas, a sua capacidade de profissional que define qual a melhor ferramenta e forma de fazer com base em cada caso e demanda.