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


Чтобы нарисовать прямоугольник в Matplotlib, вы можете использовать функцию matplotlib.patches.Rectangle , которая использует следующий синтаксис:

matplotlib.patches.Rectangle (xy, ширина, высота, угол = 0,0)

куда:

  • xy: координаты (x, y) точки привязки прямоугольника.
  • ширина: ширина прямоугольника
  • высота: высота прямоугольника
  • угол: вращение в градусах против часовой стрелки вокруг xy (по умолчанию 0)

В этом руководстве представлено несколько примеров использования этой функции на практике.

Пример 1. Нарисуйте прямоугольник на графике

Следующий код показывает, как нарисовать прямоугольник на графике Matplotlib с шириной 2 и высотой 6:

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

#define Matplotlib figure and axis
fig, ax = plt.subplots()

#create simple line plot
ax.plot([0, 10],[0, 10])

#add rectangle to plot
ax.add_patch (Rectangle((1, 1), 2, 6))

#display plot
plt.show() 

Пример 2: Стиль прямоугольника

В следующем коде показано, как применить стиль к прямоугольнику:

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

#define Matplotlib figure and axis
fig, ax = plt.subplots()

#create simple line plot
ax.plot([0, 10],[0, 10])

#add rectangle to plot
ax.add_patch (Rectangle((1, 1), 2, 6,
 edgecolor = 'pink',
 facecolor = 'blue',
 fill= True ,
 lw= 5 ))

#display plot
plt.show() 

Полный список свойств стиля, которые можно применить к прямоугольнику, можно найти здесь .

Пример 3. Нарисуйте прямоугольник на изображении

Следующий код показывает, как нарисовать прямоугольник на изображении в Matplotilb. Обратите внимание, что изображение, используемое в этом примере, взято из этого учебника по Matplotlib .

Чтобы воспроизвести этот пример, просто загрузите фотографию клопа из этого руководства и сохраните ее на свой компьютер.

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Image

#display the image
plt.imshow (Image. open('stinkbug.png'))

#add rectangle
plt.gca ().add_patch (Rectangle((50,100),40,80,
 edgecolor='red',
 facecolor='none',
 lw= 4 ))

Обратите внимание, что мы можем использовать аргумент угла , чтобы повернуть прямоугольник на определенное количество градусов против часовой стрелки:

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Image

#display the image
plt.imshow (Image. open('stinkbug.png'))

#add rectangle
plt.gca ().add_patch (Rectangle((50,100),40,80,
 angle= 30 ,
 edgecolor='red',
 facecolor='none',
 lw= 4 )) 

Связанный: Как строить круги в Matplotlib (с примерами)