如何将文本添加到Rectangle中?

MCF*_*MCF 18 matplotlib

我有一个代码,可以在图像上绘制数百个小矩形:

例

矩形是实例

    matplotlib.patches.Rectangle
Run Code Online (Sandbox Code Playgroud)

我想把一个文本(实际上是一个数字)放到这些矩形中,我没有办法做到这一点.matplotlib.text.Text似乎允许一个人插入一个矩形包围的文本但是我希望矩形处于一个精确的位置并具有精确的大小,我不认为可以用text()完成.

Pau*_*l H 25

我认为你需要使用你的axis对象的annotate方法.

您可以使用矩形的属性来了解它.这是一个玩具示例:

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()
Run Code Online (Sandbox Code Playgroud)

带注释的矩形