将文件中的标签添加到绘图上的数据点

时间:2014-02-09 10:09:12

标签: python csv numpy matplotlib plot

我已经从csv文件中加载了x和y数据并将其绘制出来。我已经从csv文件中加载了每个点的名称,但是在将其作为标签附加到图上的每个点时遇到了问题。

data = np.genfromtxt('plotfile.csv',delimiter=',',dtype=str,skiprows=1)
data2 = np.genfromtxt('plotfile.csv',delimiter=',',dtype=float,skiprows=1)
x = data2[:,1]
y = data2[:,3]
z = data[:,2]

pylab.xlabel("Distance (km)")
pylab.ylabel("Precursor Length (s)")

scatter(x,y)
text(x,y,labels=z, pos=3)

我不确定是否应该使用annotate命令而不是文本。我目前收到错误说:

TypeError:text()至少需要3个参数(给定2个)

2 个答案:

答案 0 :(得分:1)

text()中,xy必须是标量(请参阅docstring),而不是array。所以以下是一种解决方法:

x=[0.3,0.5]
y=[0.3,0.5]
z=['ok','no']
map(text,x,y,z)

enter image description here

您获得例外的原因是您没有为s提供所需的参数text(x, y, s, fontdict=None, withdash=False, **kwargs)

答案 1 :(得分:0)

可能是text()无法识别标签。试试这个

text(x, y, z)