J'ai 3 axes avec une ou plusieurs lignes. Pour obtenir le sélecteur de la ligne où se trouve mon curseur, j'ai essayé de changer la zord de la hache qui contient la ligne.Matplotlib zorder ax cacher les autres lignes de l'axe
Précision: Je suis dans un FigureCanvasQTAgg dérivé objet
def onmove(self, event):
"""Methode appelée à chaque mouvement de souris dans le canvas."""
for curr_axe in self.fig.get_axes():
curr_axe.set_zorder(0)
if curr_axe.in_axes(event):
axe_x, axe_y = self.axe_dict[curr_axe.name].get_grid_coord(
event.x, event.y)
for line in curr_axe.get_lines():
contain, _ = line.contains(event)
if contain and line.get_label()[0] != '_':
curr_axe.set_zorder(0.1)
self.draw()
self.current_line = line.get_label()
La première hache est simplement créée en utilisant la classe Haches Matplotlib() Ajouter ajouté dans la figure avec add_axes()
axe = Axes(figure, rect)
figure.add_axes(axe)
Le les autres axes sont créés via twinx() et ajoutés à la figure avec add_axes() aussi
axe_2 = axe.twinx()
figure.add_axes(axe_2)
axe_3 = axe.twinx()
figure.add_axes(axe_3)
La méthode onmove fonctionne (je peux choisir chaque ligne que je veux) mais quand la zord de la première hache de dessin l'active, elle cache les lignes des axes. Exemple: si ma souris est sur une ligne de la hache nommée hache, elle cache les lignes d'axe_2 et d'axe_3.
C'est absolument exact merci beaucoup – reynum