2016-12-22 2 views
0

Здравствуйте, дорогой Python распространяемого developper, Я хотел бы знать, если есть способ, чтобы иметь другую функцию обратного вызова для каждого subplot2grid (Matplotlib), Например: Для первого subplot2grid Я хочу выполнить функцию, отличную от второго subplot2grid, которая генерирует выполнение другой функции.Различных Callback для каждого сюжетного используя subplot2grid

Я указываю, что я использую subplot2grid, а не subplot в matplotlib. Спасибо,

+0

Вы, возможно, могли бы обернуть функцию, а затем подсчитать количество времени, которое вы уже выполняют функцию. С помощью этой информации вы могли бы вызвать другой обратный вызов? – iFlo

+0

Thnx для ответа, У вас есть пример, пожалуйста? –

+0

Я не думаю, что это возможно, но вы могли бы сделать это в два этапа: функция обратного вызова вычисляет из Ax (subplot) событие, которое было создано, и на основе этого вызывает вторую функцию, отличающуюся для каждой из подзаговоры. Все зависит от того, какое событие вы заинтересованы в обработке –

ответ

1

Если ваша цель состоит в использовании widget.Button для каждого подзаголовка, то ситуация очень проста. Чтобы создать кнопку, вам необходимо передать ей экземпляр Axes, и кнопка займет это пространство. Поэтому вам нужно создать столько новых осей, сколько у вас есть подзаголовки, и соответственно указать их координаты. Затем создайте свои кнопки, которые могут иметь разные функции обратного вызова.

, например:

from matplotlib.widgets import Button 

def callback1(event): 
    print "you've clicked button 1" 

def callback2(event): 
    print "you've clicked button 2" 

fig = plt.figure() 
ax1 = plt.subplot2grid((2,2),(0, 0)) 
ax2 = plt.subplot2grid((2,2),(1,1)) 

# create axes to receive the buttons 
# adjust the coordinates to suit your needs 
# coordinates are [left, bottom, width, height] 
b1ax = plt.axes([0.5, 0.8, 0.2, 0.1]) 
b1 = Button(b1ax, 'Button 1') 
b1.on_clicked(callback1) 
b2ax = plt.axes([0.7, 0.5, 0.2, 0.1]) 
b2 = Button(b2ax, 'Button 2') 
b2.on_clicked(callback2) 
plt.show() 

enter image description here

документация для widget.Button: http://matplotlib.org/api/widgets_api.html#matplotlib.widgets.Button

пример реализации: http://matplotlib.org/examples/widgets/buttons.html

+0

Ah thnx много, вот что я искал, Другой вопрос ^^: Есть ли способ установить другие параметры с параметром события в вызываемой функции. ^^ –

+0

Я нашел решение для своего Последний вопрос: b2ax_outgoing = plt.axes ([0,4, 0,4, 0,01, 0,02]) bouttonni2 = buttonn (b2ax_outgoing, '', цвет = 'красный') bouttonni2.on_clicked (лямбда событие: taux_outgoing2 (читатель, val1, val2, val3, val4, val5, tech, event)) THNX A LOT –

+0

Добро пожаловать. Если ответ был полезен для вас, подумайте о его принятии, нажав на галочку слева –

Смежные вопросы