matplotlib でプロット上の点をドラッグする例
Python の matplotlib 上で、マーカーをドラッグ可能にするプログラムの参考例です。
動作環境
- python 2.7
- matplotlib 1.5.3
実装例
使い方
- プロット上で左クリックで点を追加
- プロット上の点をドラッグで移動
- プロット上の点を右クリックで削除
解説
そんなに難しいことはしておらず、matplotlib の canvas に対してマウスイベントを拾って、適切な処理を行うだけです。
- マウスのクリックイベント時のコールバック
_on_click
で新しい点の追加、もしくは既存の点の選択・削除処理 - マウス移動イベント時のコールバック
_on_motion
で選択中の点がある場合は移動処理 - マウスリリースイベント時のコールバック
_on_release
で選択中の点がある場合は確定処理
ちょっとずるいのは、点のX, Y座標を整数に絞ることで、点の管理を簡略化しているところかも。。。
もっと良い実装があれば PR くださーい!