Criar Gráfico de Referência de Setas no Matplotlib

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 de referência de estilo de seta usando Matplotlib em Python. O gráfico exibirá os diferentes estilos de seta disponíveis em ~.Axes.annotate.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e 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ê.

Importar as Bibliotecas Necessárias

Importe as bibliotecas necessárias para criar o gráfico de referência de estilo de seta.

import inspect
import itertools
import re

import matplotlib.pyplot as plt

import matplotlib.patches as mpatches

Obter os Estilos de Seta

Use mpatches.ArrowStyle.get_styles() para obter todos os estilos de seta disponíveis em ~.Axes.annotate.

styles = mpatches.ArrowStyle.get_styles()

Configurar a Figura

Configure a figura usando plt.figure() e add_gridspec(). A figura terá uma grade de 2 colunas e n linhas, onde n é o número de estilos de seta. Cada célula na grade conterá um estilo de seta e seus parâmetros padrão.

ncol = 2
nrow = (len(styles) + 1) // ncol
axs = (plt.figure(figsize=(4 * ncol, 1 + nrow))
       .add_gridspec(1 + nrow, ncol,
                     wspace=.7, left=.1, right=.9, bottom=0, top=1).subplots())
for ax in axs.flat:
    ax.set_axis_off()
for ax in axs[0, :]:
    ax.text(0, .5, "arrowstyle",
            transform=ax.transAxes, size="large", color="tab:blue",
            horizontalalignment="center", verticalalignment="center")
    ax.text(.35, .5, "default parameters",
            transform=ax.transAxes,
            horizontalalignment="left", verticalalignment="center")

Plotar os Estilos de Seta

Plote cada estilo de seta em uma célula da grade, juntamente com seus parâmetros padrão. Use ax.annotate() para adicionar o nome do estilo de seta e seus parâmetros padrão à célula.

for ax, (stylename, stylecls) in zip(axs[1:, :].T.flat, styles.items()):
    l, = ax.plot(.25, .5, "ok", transform=ax.transAxes)
    ax.annotate(stylename, (.25, .5), (-0.1, .5),
                xycoords="axes fraction", textcoords="axes fraction",
                size="large", color="tab:blue",
                horizontalalignment="center", verticalalignment="center",
                arrowprops=dict(
                    arrowstyle=stylename, connectionstyle="arc3,rad=-0.05",
                    color="k", shrinkA=5, shrinkB=5, patchB=l,
                ),
                bbox=dict(boxstyle="square", fc="w"))
    ## wrap at every nth comma (n = 1 or 2, depending on text length)
    s = str(inspect.signature(stylecls))[1:-1]
    n = 2 if s.count(',') > 3 else 1
    ax.text(.35, .5,
            re.sub(', ', lambda m, c=itertools.count(1): m.group()
                   if next(c) % n else '\n', s),
            transform=ax.transAxes,
            horizontalalignment="left", verticalalignment="center")

Exibir o Gráfico

Exiba o gráfico de referência dos estilos de seta usando plt.show().

plt.show()

Resumo

Neste tutorial, você aprendeu como criar um gráfico de referência de estilos de seta usando Matplotlib em Python. Você utilizou mpatches.ArrowStyle.get_styles() para obter todos os estilos de seta disponíveis em ~.Axes.annotate, configurou uma figura usando plt.figure() e add_gridspec(), plotou cada estilo de seta em uma célula da grade e exibiu o gráfico usando plt.show().