2016-12-22 38 views
0

你好,親愛的Python comunity developper, 每個插曲,我想知道是否有辦法讓每一個subplot2grid(matplotlib)不同的回調, 例如:對於第subplot2grid我想執行一個不同於第二個subplot2grid的函數,該函數生成執行另一個函數。不同的回調使用subplot2grid

我指定我使用subplot2grid,而不是在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

啊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

不客氣。如果答案對您有用,請考慮點擊左側的複選標記來接受答案 –

相關問題