Plotly
Plotly cria gráficos interativos prontos para a web com hover, zoom e pan - exporte HTML ou incorpore em aplicativos Dash.
Busque em todas as páginas da documentação
Plotly cria gráficos interativos prontos para a web com hover, zoom e pan - exporte HTML ou incorpore em aplicativos Dash.
Cartão de receita de referência rápida - pronto para copiar e colar.
import plotly.express as px
import pandas as pd
df = pd.read_csv("sales.csv", parse_dates=["ordered_at"])
fig = px.line(df, x="ordered_at", y="revenue", color="region", title="Tendência de receita")
fig.update_layout(hovermode="x unified")
fig.write_html("revenue.html", include_plotlyjs="cdn")Quando usar isso:
import plotly.express as px
import plotly.graph_objects as go
import pandas as pd
import numpy as np
rng = np.random.default_rng(42)
df = pd.DataFrame(
{
"region": np.repeat(["East", "West"], 100),
"month": np.tile(np.arange(1, 13).repeat(8)[:100], 2),
"revenue": rng.integers(80, 200, 200),
"units": rng.integers(5, 50, 200),
}
)
# Dispersão Express com hover personalizado
fig_scatter = px.scatter(
df,
x="units",
y="revenue",
color="region",
hover_data=["month"],
opacity=0.7,
title="Unidades vs receita",
)
fig_scatter.update_traces(marker=dict(size=8))
# Objetos de Gráfico para combinação de eixo duplo
monthly = df.groupby(["month", "region"], observed=True)["revenue"].sum().reset_index()
fig_combo = go.Figure()
for region, sub in monthly.groupby("region"):
fig_combo.add_trace(
go.Scatter(x=sub["month"], y=sub["revenue"], mode="lines+markers", name=region)
)
fig_combo.update_layout(
xaxis_title="Mês",
yaxis_title="Receita",
legend_title="Região",
template="plotly_white",
)
fig_scatter.write_html("scatter.html", include_plotlyjs="cdn")
fig_combo.write_html("combo.html", include_plotlyjs="cdn")O que isso demonstra:
hover_datatemplate para tema claro consistente| Camada | Melhor para |
|---|---|
plotly.express | Gráficos padrão de dados organizados |
plotly.graph_objects | Layouts personalizados, eixos duplos, anotações |
import plotly.io as pio
# Exportação de imagem estática requer kaleido
pio.write_image(fig, "chart.png", scale=2)include_plotlyjs=True incha os arquivos. Correção: use "cdn" ou "directory".astype(str) ou category_orders.hovertemplate.write_image falha em CI. Correção: uv pip install kaleido em trabalhos de exportação.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| matplotlib | Pipelines estáticos de impressão/PDF | Precisa de tooltips de hover |
| Altair | Especificações declarativas Vega-Lite | Precisa de traces WebGL 3D |
| Bokeh | Grandes conjuntos de dados de streaming | Equipe já usa Plotly/Dash |
| Observable Plot | Gramática nativa da web | Tarefas em lote apenas em Python |
fig.update_traces(hovertemplate="Receita: %{y:$,.0f}<extra></extra>")fig.show() renderiza inline com suporte a nbformat.fig.update_layout(legend_traceorder="reversed")fig.add_hline(y=150, line_dash="dash", annotation_text="meta")pl.DataFrame onde suportado ou .to_pandas() primeiro.fig.update_layout(template="plotly_dark")fig.to_html(full_html=False) em templates.px.scatter(..., animation_frame="year") para conjuntos de dados pequenos.Versões da 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: 19 de jul. de 2026