0
海中のヒートマップにモーションイベントを関連付けようとしているため、マウスでマウスをホバーすると境界線が強調表示されます。これまでのところ、私はキャンバスにmotion_notify_event
を関連付けることによって、それを行うために管理:マウスホバーを介して海底ヒートマップのセルをハイライト表示
import matplotlib.patches as mpatches
self.canvash.mpl_connect('motion_notify_event', self.onMotion)
(...)
def onMotion(self,event):
if not event.inaxes:
return
xint = int(event.xdata)
yint = int(event.ydata)
self.axh.add_patch(mpatches.Rectangle((xint, yint),1,1,fill=False,edgecolor='blue',linewidth=0.5))
self.canvash.draw()
これは動作しますが、私はマウスを移動として、セルが強調されます。一方だけがアクティブになるように
私はちょうど、私はそれを移動すると、マウスの下のセルを強調表示したい:問題は、すべてのセルがハイライト表示されます、そして、結果はこのようなものであるということです。
どうすればいいですか?
おそらく、あなたのイベントがトリガされるたびに既存のハイライトをクリアする必要があります。だから、あなたは 'onMotion'の最上部にあるコードを置くことになります –
はい、それは私が考えていたもの、おそらく' remove_patch'のようなものでしたが、パッチを削除することに関連する文書では何も見つかりませんでした単に追加するだけです。もし私が 'cla()'や 'clf()'メソッドを使うと図全体がリセットされます... – MrPedru22
私は実際に最小限で完全な作業例を手伝ってくれません。パッチオブジェクトをクラスのプロパティとして保存して削除したのでしょうか? –