2013-11-26 4 views
0

В Matplotlib, Python, я хочу щелкнуть и пометить точки (на самом деле, точку, вычисленную из ее положения, в конце концов), но это кажется невозможным. Даже что-то простое, как это не работает:Почему я не могу отобрать выбранные баллы?

from pylab import * 

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(np.random.rand(10)) 

def onclick(event): 
    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
     event.button, event.x, event.y, event.xdata, event.ydata) 
    plt.plot(event.xdata,event.ydata,',') 

cid = fig.canvas.mpl_connect('button_press_event', onclick) 
show() 
+0

вы получаете ошибки? – tacaswell

+0

нет, он просто не показывает – NoBugs

ответ

1

',' является маркером для одного пикселя, попробуйте 'o' или что-то больше, вместо этого.

fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(np.random.rand(10)) 

def onclick(event): 
    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
     event.button, event.x, event.y, event.xdata, event.ydata) 
    ax.plot(event.xdata,event.ydata,'o') 
    plt.draw_if_interactive() 

cid = fig.canvas.mpl_connect('button_press_event', onclick) 
show() 

enter image description here

+0

Я использовал ',' как маркер раньше. с o, без изменений, по-прежнему не работает. – NoBugs

+0

Код, который я опубликовал, корректно работает с текущим мастером. Какую версию mpl вы используете? – tacaswell

+0

@NoBugs Также, какой бэкэнд? Интерактивность не работает в ноутбуках ipython. – tacaswell