2017-07-20 30 views
0

、こんにちは、私はpythonを使用しています> matplotlibと私は、カーソルを使用してプロットからデータを取得したい。 0,0から1.9,1.9に19個のドットが存在することになるプロットでPython matplotlibプロットからカーソルを持つデータを取得

import numpy as np 
import matplotlib.pyplot as plt 
t = np.arange(0., 2., 0.1) 
plt.plot(t,t,'g^') 
ax = plt.gca() 
line = ax.lines[0] 
xd = line.get_xdata() 
yd = line.get_ydata() 
valx = np.where(xd==xd[0]) 
plt.show() 

。そう...私は最初0,0をクリックし、0.3,0.3に、私は値を取得したい

(0,0); 
(0.1,0.1); 
(0.2,0.2); 
(0.3,0.3) 

これを行うにはそこに方法は何ですか?

また、カーソルがポイント上になければならないという問題があります。カーソルをグラフィック上に配置する方法はありますか?

答えて

0

matplotlibページにPicker exampleがあります。 n番目の点がクリックされたときに最初のn点のペアを表示するように調整できます。

import numpy as np 
import matplotlib.pyplot as plt 
t = np.arange(0., 2., 0.1) 
line, = plt.plot(t,t,'g^', picker=6) 

def click(event): 
    artist = event.artist 
    ind = event.ind[0] 
    xd = artist.get_xdata()[:ind] 
    yd = artist.get_ydata()[:ind] 
    print(zip(xd, yd)) 

cid = plt.gcf().canvas.mpl_connect("pick_event", click) 

plt.show() 
関連する問題