Matplotlib intermediário

Anotações, texto e linhas de referência

Aponte valores importantes com ax.annotate, adicione notas com ax.text e marque metas com axhline.

Introdução

Um bom gráfico mostra ao leitor para onde olhar. ax.annotate escreve um rótulo com uma seta apontando para um ponto, ax.text coloca texto livre, e ax.axhline ou ax.axvline desenha uma linha de referência, como uma média ou uma meta.

xy é o ponto para onde a seta aponta e xytext é onde fica o rótulo; arrowprops desenha a seta. Em um gráfico com categorias de texto, as posições x são 0, 1, 2 etc., então o melhor mês está em x = best. axhline desenha a média em toda a largura e ax.text explica o que significa a linha tracejada.

Visualizador interativo

Escolha qual ponto anotar, tire a seta e a linha da média e veja qual linha de código desenha cada parte.

Exemplo de Matplotlib executável

Matplotlib
Executar código →
main.py
import matplotlib.pyplot as plt

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
sales = [12, 15, 14, 22, 19, 17]
best = sales.index(max(sales))
average = sum(sales) / len(sales)

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(months, sales, marker="o")
ax.annotate(f"Best month: {sales[best]}k", xy=(best, sales[best]), xytext=(best + 0.5, sales[best] + 1.5),
            arrowprops=dict(arrowstyle="->"))
ax.axhline(average, color="gray", linestyle="--")
ax.text(0, average + 0.4, f"average {average:.1f}k", color="gray")
ax.set_ylim(10, 25)
ax.set_title("Sales by month")
plt.show()
Gerar um botão Run para este exemplo O gráfico que este código desenha
Anotações, texto e linhas de referência