Matplotlib を使用すると、優れたインタラクティブなプロットを作成できます。マウスの左ボタンを押したままドラッグすると、プロットを左右または上下にパンできます。マウスの右ボタンを押したままドラッグすると、プロットをドラッグした方向に平行な軸をズームできます。カラーバーをドラッグして、この種の動作を再現できるようにしたいと考えています。マウスをカラーバーの上に置くと小さな手が表示されますが、ドラッグしても何も起こりません。マウスの左ボタンでカラーバーに沿ってドラッグするとカラーバーの範囲が変更され (cmin と cmax の差が一定に保たれます)、マウスの右ボタンでドラッグすると cmin と cmax の差が変更されます (例: ズーム)。これを可能にする方法はありますか?
これまでのところ、ソリューションには によって登録された何らかの形式のコールバック関数が含まれているようfig.canvas.mpl_connect('button_press_event', func)
です。例えば:
def onclick(event):
tb = plt.get_current_fig_manager().toolbar
print repr(tb.mode),bool(tb.mode)
if tb.mode != '':
print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, event.ydata)
cid = fig.canvas.mpl_connect('button_press_event', onclick)
イベントはここに記載されているようですが、カラーバーにいるのか、プロットの残りの部分にいるのかを知る方法がわかりません。