2

次のように、for ループを介して matplotlib で一連の AnnotationBbox を作成するとします。

 for city in cities:
     x, y = self.map(city[1], city[0])

     ab = AnnotationBbox(imagebox, [x,y],
                                xybox=(0, 0),
                                xycoords='data',
                                boxcoords="offset points",
                                frameon=False)
            self.axes.add_artist(ab)
            self.locationImages.append(ab)

この例では、一連の AnnotationBBoxes を作成し、それらを self.locationImages というリストに格納しました。次に、ループ内で self.locationImages を調べ、次のようにしてそれぞれを削除します。

    for image in self.locationImages:
        image.remove()

ループを通過せずにすべてのアーティストを削除する方法はありますか? または、軸や図を削除せずに、すべてのアーティストと線を完全に削除するには?

マップ上にポイントをプロットしていますが、マップを維持する必要があります。ズームインとズームアウトを行っていますが、ズームインとズームアウト中に、すべてを削除して再プロットする必要があります。私は大規模なデータセットを扱っており、反復を行うことはコストのかかるアクションです

4

2 に答える 2