如何在matplotlib中标记补丁

时间:2015-09-25 15:31:41

标签: matplotlib patch

我正在交互模式下在matplotlib中绘制矩形补丁。我想为每个补丁添加文本。我不想对它们进行注释,因为它会降低速度。我正在使用'标签'补丁的属性但它不起作用。 Ayone知道如何在补丁中添加1个字符串。

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

plt.ion()
plt.show()
x=y=0.1
fig1 = plt.figure()
ax1 = fig1.add_subplot(111, aspect='equal')
patch= ax1.add_patch(patches.Rectangle((x, y), 0.5, 0.5,
    alpha=0.1,facecolor='red',label='Label'))

plt.pause(0)
plt.close()

1 个答案:

答案 0 :(得分:5)

您已经知道补丁的位置,因此您可以计算中心的位置并在那里添加一些文字:

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

x=y=0.1
fig1 = plt.figure()
ax1 = fig1.add_subplot(111, aspect='equal')
patch= ax1.add_patch(patches.Rectangle((x, y), 0.5, 0.5,
    alpha=0.1,facecolor='red',label='Label'))

centerx = centery = x + 0.5/2 # obviously use a different formula for different shapes

plt.text(centerx, centery,'lalala')
plt.show()

centeredtext

plt.text的坐标确定文本的开始位置,,这样您就可以在x方向稍微微移一下,以使文本更加居中,例如centerx - 0.05 显然@ JoeKington的建议是实现此目的的正确方法