Matplotlib - 从列表中的项目构建的点标签

时间:2012-02-09 08:11:58

标签: python plot matplotlib label

使用matplotlib,我定义了以下函数来打印标签。标签位于正确的位置,但标签不正确。

def printPointLabel(x,y,z,iternum,ax):
    print x 
    label = '(%d, %d), ITER%s' % (x, y, iternum)
    ax.text(x, y, z, label)

我在for循环中为printPointLabel调用了四个不同的点

for i,num,c in zip((0,sampl4,2*sampl4,len(simplexpath)-1),(0,sampl4,2*sampl4,len(simplexpath)),('r','r','g','b')):
    appendSimplex(xs,ys,zs,col,simplexpath[i], peaks, c)
    printPointLabel(simplexpath[i][0][0],simplexpath[i][0][1],peaks([simplexpath[i]  [0][0],simplexpath[i][0][1]]),num,ax)

并且每个循环都不会更新标签内容。它与第一个标签保持一致。

你可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

出现问题
ax.text(x, y, z, label)

呼叫。 text函数的调用签名是:

text(x, y, s, fontdict=None, **kwargs)

答案 1 :(得分:0)

>>> sampl4 = "samp14"
>>> simplexpath = "simplexpath"
>>> zip((0,sampl4,2*sampl4,len(simplexpath)-1),(0,sampl4,2*sampl4,len(simplexpath)),('r','r','g','b'))
[(0, 0, 'r'),
 ('samp14', 'samp14', 'r'),
 ('samp14samp14', 'samp14samp14', 'g'),
 (10, 11, 'b')]

您是否打算num成为0, samp14, 2*samp14, len(simplexpath)-1

你能给我们一个样本输出吗?