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)

これは、悪い点について、年日からx軸に沿った距離を計算し、最も近いもののインデックスを返します。

于 2012-11-21T23:10:57.467 に答える