Como desenhar setas no matplotlib
Para desenhar setas no Matplotlib, você pode usar a função matplotlib.pyplot.arrow , que usa a seguinte sintaxe:
matplotlib.pyplot.arrow(x, y, dx, dy)
Ouro:
- x, y: as coordenadas x e y da base da seta
- dx, dy: o comprimento da seta nas direções x e y
Este tutorial fornece vários exemplos de uso prático desta função.
Exemplo 1: desenhe uma única seta
O código a seguir mostra como desenhar uma única seta em um gráfico Matplotlib:
import matplotlib. pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt. scatter (A, B, s= 40 ) #add arrow to plot plt. arrow (x= 4 , y= 18 , dx= 2 , dy= 5 , width= .08 ) #displayplot plt. show ()
Observe que podemos definir dx=0 para criar uma seta vertical e dy=0 para criar uma seta horizontal.
Por exemplo, veja como criar uma seta vertical:
import matplotlib. pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt. scatter (A, B, s= 40 ) #add arrow to plot plt. arrow (x= 4 , y= 18 , dx= 0 , dy= 5 , width= .08 ) #displayplot plt. show ()
Exemplo 2: estilizando uma seta
Por padrão, uma seta no Matplotlib é azul com bordas pretas, mas podemos facilmente alterar isso usando os argumentos facecolor e edgecolor :
import matplotlib. pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt. scatter (A, B, s= 40 ) #add arrow to plot plt. arrow (x= 4 , y= 18 , dx= 0 , dy= 5 , width= .08 , facecolor= 'red' , edgecolor= 'none' ) #displayplot plt. show ()
Você pode encontrar uma lista completa de propriedades de estilo que podem ser aplicadas às setas aqui .
Exemplo 3: Adicionar anotações às setas
O código a seguir mostra como adicionar uma anotação sob uma seta em um gráfico Matplotlib:
import matplotlib. pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt. scatter (A, B, s= 40 ) #add arrow to plot plt. arrow (x= 4 , y= 18 , dx= 0 , dy= 5 , width= .08 ) #add annotation plt. annotate (' General direction ', xy = (3.4, 17)) #displayplot plt. show ()
Recursos adicionais
Como traçar círculos no Matplotlib (com exemplos)
Como desenhar retângulos no Matplotlib (com exemplos)