2016-07-25 16 views
0

私は、onpickがonpick(イベント)ハンドラであるcanvas.mpl_connect('pick_event', onpick)を実行することで、2つがpickイベントにバインドされた4つのサブプロットを持つFigureを持っています。matplotlibとpythonを使ってpickイベントからサブプロットを取得

ここで、2つのsuplotのどちらをクリックするかに基づいて、別の動作を有効にする必要があります(つまり、1番目のサブプロットからのピックアップがこれを行う場合は2番目のsuplotからのものです)それをする方法を知っている。 誰でも助けてくれますか?ここで

答えて

1

は短い例です:あなたは、このイベントを発生すべきであるサブプロットにset_picker(True)を呼び出す必要が

import matplotlib.pyplot as plt 
from random import random 

def onpick(event): 
    if event.artist == plt1: 
     print("Picked on top plot") 
    elif event.artist == plt2: 
     print("Picked on bottom plot") 

first = [random()*i for i in range(10)] 
second = [random()*i for i in range(10)] 

fig = plt.figure(1) 
plt1 = plt.subplot(211) 
plt.plot(range(10), first) 

plt2 = plt.subplot(212) 
plt.plot(range(10), second) 

plt1.set_picker(True) 
plt2.set_picker(True) 
fig.canvas.mpl_connect('pick_event', onpick) 

plt.show() 

注意!そうしないと、キャンバスにイベントを設定しても何も起こりません。

さらに詳しくは、matplotlibサイトのPickEvent documentationpick handling demoです。

+0

だから私が探していた判別情報はイベントにあった。あなたは本当に私の問題を解決した –

関連する問題