Чтобы рисовать стрелки в Matplotlib, вы можете использовать функцию matplotlib.pyplot.arrow , которая использует следующий синтаксис:
matplotlib.pyplot.стрелка (х, у, дх, dy)
куда:
- x, y: координаты x и y основания стрелки
- dx, dy: длина стрелки по осям x и y.
В этом руководстве представлено несколько примеров использования этой функции на практике.
Пример 1. Нарисуйте одну стрелку
Следующий код показывает, как нарисовать одну стрелку на графике 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 )
#display plot
plt.show()

Обратите внимание, что мы можем установить dx=0 , чтобы создать вертикальную стрелку, и dy=0 , чтобы создать горизонтальную стрелку.
Например, вот как создать вертикальную стрелку:
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 )
#display plot
plt.show()

Пример 2: Стиль стрелки
По умолчанию стрелка в Matplotlib синяя с черными краями, но мы можем легко изменить это, используя аргументы facecolor и 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' )
#display plot
plt.show()

Полный список свойств стилей, которые можно применить к стрелкам, вы можете найти здесь .
Пример 3. Добавление аннотаций к стрелкам
В следующем коде показано, как добавить аннотацию под стрелкой на графике 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))
#display plot
plt.show()

Дополнительные ресурсы
Как построить круги в Matplotlib (с примерами)
Как рисовать прямоугольники в Matplotlib (с примерами)