seaborn
seaborn constrói gráficos estatísticos sobre matplotlib com APIs de dados tidy - ideal para análise exploratória rápida e padrões polidos.
Busque em todas as páginas da documentação
seaborn constrói gráficos estatísticos sobre matplotlib com APIs de dados tidy - ideal para análise exploratória rápida e padrões polidos.
Cartão de referência rápida - pronto para copiar e colar.
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
sns.set_theme(style="whitegrid", context="notebook")
df = pd.read_csv("sales.csv", parse_dates=["ordered_at"])
g = sns.relplot(data=df, x="ordered_at", y="revenue", hue="region", kind="line")
g.set_axis_labels("Data", "Receita ($)")
plt.close()Quando usar:
col, row)import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
rng = np.random.default_rng(42)
df = pd.DataFrame(
{
"region": np.repeat(["East", "West"], 200),
"segment": np.tile(np.repeat(["SMB", "Enterprise"], 100), 2),
"revenue": rng.normal(150, 40, 400).clip(10),
}
)
sns.set_theme(style="ticks")
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
sns.histplot(data=df, x="revenue", hue="region", kde=True, ax=axes[0])
axes[0].set_title("Distribuição")
sns.boxplot(data=df, x="segment", y="revenue", hue="region", ax=axes[1])
axes[1].set_title("Por segmento")
sns.barplot(
data=df,
x="region",
y="revenue",
estimator="median",
errorbar=("pi", 50),
ax=axes[2],
)
axes[2].set_title("Mediana com intervalo")
sns.despine()
fig.tight_layout()
fig.savefig("eda.png", dpi=150, bbox_inches="tight")
plt.close(fig)O que isso demonstra:
data= tidy em três tipos de gráficohistplot com sobreposição KDE opcionalboxplot com hue para uma segunda categoriaerrorbar moderna em vez do ci obsoletorelplot, catplot, displot) retornam FacetGrid.scatterplot, barplot) aceitam ax= para subplots.| Pergunta | Função |
|---|---|
| Tendência ao longo do tempo | lineplot / relplot(kind="line") |
| Comparação de categorias | barplot, boxplot, violinplot |
| Distribuição | histplot, kdeplot, ecdfplot |
| Relacionamento | scatterplot, regplot |
import seaborn as sns
# Carrega conjunto de dados de exemplo para ensino
tips = sns.load_dataset("tips") # cache de CSV incluído
# Paleta acessível para leitores daltônicos
sns.set_palette("colorblind")melt ou corrigir o esquema upstream.ci= obsoleto - removido no seaborn 0.13+. Correção: usar errorbar=("ci", 95) ou None.plt.close esquecido em relplot - APIs de nível de figura criam novas figuras silenciosamente. Correção: capturar o valor de retorno e usar plt.close().hue categórico enorme - legendas ilegíveis. Correção: filtro top-N ou facetar em vez de usar hue.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
pandas .plot | Gráficos rápidos mínimos | Precisa de padrões de IC estatísticos |
| Plotly express | Exploração interativa | Pipeline de impressão estática |
| Altair | Exportação declarativa Vega-Lite | Precisa de ajustes de pixel do matplotlib |
| matplotlib cru | Controle total do artista | Boilerplate estatístico repetitivo |
melt em formato largo.sns.relplot(data=df, x="x", y="y", col="region", row="segment", kind="scatter")sns.lineplot(data=df, x="t", y="v", errorbar=None)ax=.g = sns.relplot(...)
g.savefig("out.png", dpi=150)colorblind ou Set2 para categorias.viridis) para valores contínuos.sns.regplot(data=df, x="ad_spend", y="revenue").to_pandas() para plotar, a menos que esteja usando caminhos nativos alternativos/plotly.order = df.groupby("region")["revenue"].median().sort_values().index
sns.barplot(data=df, x="region", y="revenue", order=order)countplot para contagens de linhas.Versões do Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026