Подтвердить что ты не робот

Как добавить текст в прямоугольник?

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

example

Прямоугольники являются экземплярами

    matplotlib.patches.Rectangle

Я хотел бы поместить текст (фактически число) в эти прямоугольники, я не вижу способа сделать это. matplotlib.text.Text, похоже, позволяет вставлять текст, окруженный прямоугольником, однако я хочу, чтобы прямоугольник находился в точном положении и имел точный размер, и я не думаю, что это можно сделать с помощью text().

4b9b3361

Ответ 1

Я думаю, вам нужно использовать метод аннотаций вашего объекта axes.

Вы можете использовать свойства прямоугольника для умения об этом. Вот пример игрушки:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatch

fig, ax = plt.subplots()
rectangles = {'skinny' : mpatch.Rectangle((2,2), 8, 2),
              'square' : mpatch.Rectangle((4,6), 6, 6)}

for r in rectangles:
    ax.add_artist(rectangles[r])
    rx, ry = rectangles[r].get_xy()
    cx = rx + rectangles[r].get_width()/2.0
    cy = ry + rectangles[r].get_height()/2.0

    ax.annotate(r, (cx, cy), color='w', weight='bold', 
                fontsize=6, ha='center', va='center')

ax.set_xlim((0, 15))
ax.set_ylim((0, 15))
ax.set_aspect('equal')
plt.show()

annotated rectangles