26

画像の上に何百もの小さな長方形を描くコードがあります:

例

長方形はのインスタンスです

    matplotlib.patches.Rectangle

これらの長方形にテキスト(実際には数字)を入れたいのですが、その方法がわかりません。matplotlib.text.Textを使用すると、長方形で囲まれたテキストを挿入できるようですが、長方形を正確な位置に配置し、正確なサイズにする必要があります。text()ではそれができないと思います。

4

1 に答える 1

41

Axesオブジェクトの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()

注釈付きの長方形

于 2013-01-26T01:26:21.810 に答える