我有一个在图像顶部绘制数百个小矩形的代码:
矩形是
matplotlib.patches.Rectangle
我想在这些矩形中输入一个文本(实际上是一个数字),但我没有办法做到这一点。matplotlib.text.Text 似乎允许插入由矩形包围的文本,但是我希望矩形处于精确的位置并具有精确的大小,我认为这不能用 text() 来完成。
我有一个在图像顶部绘制数百个小矩形的代码:
矩形是
matplotlib.patches.Rectangle
我想在这些矩形中输入一个文本(实际上是一个数字),但我没有办法做到这一点。matplotlib.text.Text 似乎允许插入由矩形包围的文本,但是我希望矩形处于精确的位置并具有精确的大小,我认为这不能用 text() 来完成。
我认为您需要使用轴对象的注释方法。
您可以使用矩形的属性来了解它。这是一个玩具示例:
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()