Gráficos Anotados com Matplotlib em Python

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este tutorial irá guiá-lo através do processo de criação de um gráfico com anotações usando Matplotlib em Python. Você aprenderá como conectar dois pontos com uma seta, adicionar uma elipse ao gráfico e personalizar o estilo da seta e as propriedades da elipse.

Dicas para a VM (Máquina Virtual)

Após a inicialização da VM ser concluída, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Configurar o gráfico

Primeiramente, precisamos configurar o gráfico com dois subplots. Usaremos a função subplots para criar uma grade 2x2 de subplots e, em seguida, definiremos as coordenadas x e y de dois pontos.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

fig, axs = plt.subplots(2, 2)
x1, y1 = 0.3, 0.3
x2, y2 = 0.7, 0.7

Conectar dois pontos com uma seta

Nesta etapa, conectaremos os dois pontos com uma seta. Usaremos a função annotate para criar a seta e personalizaremos o estilo e a cor da seta.

ax = axs.flat[0]
ax.plot([x1, x2], [y1, y2], ".")
ax.annotate("",
            xy=(x1, y1), xycoords='data',
            xytext=(x2, y2), textcoords='data',
            arrowprops=dict(arrowstyle="-",
                            color="0.5",
                            connectionstyle="arc3,rad=0.3",
                            ),
            )

Adicionar uma elipse ao gráfico

Nesta etapa, adicionaremos uma elipse ao gráfico. Usaremos a função Ellipse para criar a elipse e personalizaremos as propriedades da elipse, como a posição, largura, altura e ângulo.

ax = axs.flat[1]
ax.plot([x1, x2], [y1, y2], ".")
el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)
ax.add_artist(el)

Personalizar a seta para conectar à elipse

Nesta etapa, personalizaremos a seta para conectar à elipse. Usaremos o parâmetro arrowprops para especificar que a seta deve se conectar à elipse e também personalizaremos o estilo e a cor da seta.

ax = axs.flat[2]
ax.plot([x1, x2], [y1, y2], ".")
el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)
ax.add_artist(el)
ax.annotate("",
            xy=(x1, y1), xycoords='data',
            xytext=(x2, y2), textcoords='data',
            arrowprops=dict(arrowstyle="-",
                            color="0.5",
                            patchB=el,
                            connectionstyle="arc3,rad=0.3",
                            ),
            )

Personalizar a seta para encolher até a elipse

Nesta etapa, personalizaremos a seta para encolher até a elipse. Usaremos o parâmetro shrinkB para especificar a quantidade pela qual a seta deve encolher em direção à elipse.

ax = axs.flat[3]
ax.plot([x1, x2], [y1, y2], ".")
el = mpatches.Ellipse((x1, y1), 0.3, 0.4, angle=30, alpha=0.2)
ax.add_artist(el)
ax.annotate("",
            xy=(x1, y1), xycoords='data',
            xytext=(x2, y2), textcoords='data',
            arrowprops=dict(arrowstyle="fancy",
                            color="0.5",
                            patchB=el,
                            shrinkB=5,
                            connectionstyle="arc3,rad=0.3",
                            ),
            )

Resumo

Neste tutorial, você aprendeu como criar um gráfico com anotações usando Matplotlib em Python. Você aprendeu como conectar dois pontos com uma seta, adicionar uma elipse ao gráfico e personalizar o estilo da seta e as propriedades da elipse. Essas habilidades serão úteis na criação de gráficos informativos e visualmente atraentes para visualização de dados.