WxPython GUI に埋め込まれた matplotlib の図を使用して、データを表示しています。Figure の内容 (表示されるデータ) は、クリックされたボタンの機能によって絶えず変化します。
データは2種類。
1) 等高線
self.axes.contour(x_scale_map,y_scale_map,matrix,cl,cmap=my_cmap,extent=0,matrix.shape[1]-1,0,matrix.shape[0]-1))
これはロードに比較的時間がかかります (~1 秒) が、頻繁に変更されることはありません。
2)この輪郭の上に、たとえばいくつかの線をプロットします
self.axes.axhline(y,color='black')
これらの線は明らかに即座に描画され、ユーザーがクリックする機能によって頻繁に変化します。このような状況では、以前に描いた線を消し、新しい線を表示する必要がありますが、等高線図は変更されません。
さて、私の問題は次のとおりです。輪郭ではなく線のみを削除する方法が見つかりませんでした。望ましい結果を得る唯一の方法は、次のように思われます。
self.axes.clear()
次に、輪郭と新しい線の両方を再プロットします。しかし、前述のように、輪郭を毎回リロードするのは遅く、面倒です。
図から線のみをクリアする方法はありますか? 次のようなことを行って、重ね合わせたサブプロットを使用しようとしました。
self.axes1 = self.fig.add_subplot(111)
self.axes2 = self.fig.add_subplot(111)
self.axes1.contour(...)
self.axes2.axhline(y,color='black')
self.axes2.clear()
しかし、この最後の行は図全体をクリアします。
目的の機能を実現する方法を知っている人はいますか? ありがとう