Как рисовать стрелки в matplotlib
Чтобы рисовать стрелки в Matplotlib, вы можете использовать функцию matplotlib.pyplot.arrow , которая использует следующий синтаксис:
matplotlib.pyplot.arrow(x, y, dx, 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 ) #displayplot 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 ) #displayplot 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' ) #displayplot 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)) #displayplot plt. show ()
Дополнительные ресурсы
Как построить круги в Matplotlib (с примерами)
Как рисовать прямоугольники в Matplotlib (с примерами)