1
plt.plot(jd1,spd1)
plt.plot(jd1,spd1,marker="o",markerfacecolor="r",linestyle='None')
plt.show()

print 'click on any obviously bad points and then press the enter key.'
badpoints=ginput(n=0)

index_badpoints=[]
badpoints_num=len(badpoints)
for i in range(len(badpoints)):
     index_badpoints.append(int(np.interp(badpoints[i][0],
                                          yeardays,
                                          range(len(yeardays)))))

print index_badpoints #always[107,107,107...]

问题是无论我点击哪个点,我只能得到索引为 107 的点。有人可以帮我解决问题吗?

4

1 回答 1

1

我无法测试你的版本,但我可以告诉你我将如何解决这个问题:

badpoints = np.array(ginput(n=0))
index_badpoints = np.argmin(abs(np.subtract(badpoints[:,0],yeardays)),axis=1)

这会为 badpoints 计算沿 x 轴与 yeardays 的距离,并返回最接近的索引。

于 2012-11-21T23:10:57.467 回答