为相同的坐标点matplotlib设置注释

时间:2013-10-23 07:34:22

标签: matplotlib plot annotations label

我有12个不同的点,其中10个与前两个有关;我想分别为这10个点中的每一个设置标签,但有时两个或更多个具有相同的坐标但我想显示该坐标的所有标签(不是彼此叠加但可读)
如下图所示,两组点具有相同的坐标,并且它们的标签重叠

booleanFunction = np.array(["K","I","H" ,"G", "F", "E" , "D" , "M", "B", "A"])
pointsx = np.empty((rs.shape[1],1))
pointsy = np.empty((rs.shape[1],1))
....
....
....
pl.figure()
pl.hold(True)
pl.plot(X1, Y1, 'ro', X2, Y2, 'y<')
pl.plot(pointsx, pointsy, 'b3')

for i in range (len(pointsx)):
    pl.annotate(booleanFunction[i], xy=(pointsx[i], pointsy[i]), xycoords='data', textcoords='data')

dd

1 个答案:

答案 0 :(得分:2)

我的一个代码是为了避免注释重叠我做了这样的事情:

xoffset = 0.1
switch = -1
for i in range (len(pointsx)):
    pl.annotate(booleanFunction[i], xy=(pointsx[i], pointsy[i]), 
                xytext=(pointsx[i]+switch*xoffset, pointsy[i]),
                xycoords='data', textcoords='data')

    switch*=-1

这会写入带注释的文本,或者从您想要注释的点移动左右xoffset。当然,你可以在y方向或两者上使用类似的东西。