Seaborn adiciona uma camada de abstrações sobre Matplotlib que torna gráficos estatísticos muito mais fáceis — histogramas com estimativa de densidade, boxplots por categoria, heatmaps de correlação. Com menos código, você obtém visualizações mais informativas.

Instalação e configuração

pip install seaborn matplotlib
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# Estilo global:
sns.set_theme(style="whitegrid", palette="husl")
plt.rcParams["figure.dpi"] = 120

Histograma com curva de densidade

df = sns.load_dataset("tips")  # dataset de gorjetas para exemplos

fig, ax = plt.subplots(figsize=(8, 5))
sns.histplot(df["total_bill"], kde=True, ax=ax, color="#7c4dce")
ax.set_title("Distribuição do Valor da Conta")
ax.set_xlabel("Valor (US$)")
plt.tight_layout()
plt.show()

kde=True adiciona a curva de estimativa de densidade — útil para identificar a forma da distribuição (normal, assimétrica, bimodal).

Boxplot: distribuição por categoria

fig, ax = plt.subplots(figsize=(8, 5))
sns.boxplot(data=df, x="day", y="total_bill", ax=ax,
            order=["Thur", "Fri", "Sat", "Sun"])
ax.set_title("Valor da Conta por Dia da Semana")
plt.tight_layout()
plt.show()

O boxplot mostra mediana, quartis e outliers — muito mais informação que a média sozinha.

Heatmap de correlação

correlacao = df[["total_bill", "tip", "size"]].corr()

fig, ax = plt.subplots(figsize=(6, 5))
sns.heatmap(correlacao, annot=True, fmt=".2f",
            cmap="RdYlGn", center=0, ax=ax)
ax.set_title("Correlação entre Variáveis")
plt.tight_layout()
plt.show()

annot=True exibe os valores numéricos; cmap="RdYlGn" usa vermelho para correlações negativas e verde para positivas.

Scatterplot com cor por categoria

fig, ax = plt.subplots(figsize=(8, 5))
sns.scatterplot(data=df, x="total_bill", y="tip",
                hue="time", style="sex", ax=ax)
ax.set_title("Gorjeta vs. Valor da Conta")
plt.tight_layout()
plt.show()

Pairplot: visão geral das relações

g = sns.pairplot(df[["total_bill", "tip", "size"]], diag_kind="kde")
g.fig.suptitle("Relações entre Variáveis", y=1.02)
plt.show()

Pairplot cria uma grade de scatterplots para todos os pares de variáveis numéricas — ótimo para a fase inicial de análise exploratória.

Perguntas frequentes

Como salvar um gráfico Seaborn em alta qualidade?

Use plt.savefig("grafico.png", dpi=300, bbox_inches="tight") após a chamada Seaborn, antes do plt.show(). Como Seaborn usa Matplotlib por baixo, o savefig funciona normalmente.

Seaborn tem temas prontos?

Sim: sns.set_theme(style=...) com opções "darkgrid", "whitegrid", "dark", "white", "ticks". Para paletas: palette="Set2", "muted", "husl", entre dezenas de opções.