Ich habe 3 Achsen mit einer oder mehreren Linien. Um die Auswahl der Zeile, in der sich mein Cursor befindet, zu erhalten, habe ich versucht, die Zorder der Axt, die die Zeile enthält, zu ändern.Matplotlib zorder axe verstecken andere Axtlinien
Präzision: Ich bin in einer FigureCanvasQTAgg abgeleiteten 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()
Die erste Axt wird einfach mit add_axes in der Figur add hinzugefügt erstellt die Matplotlib Achsen()-Klasse()
axe = Axes(figure, rect)
figure.add_axes(axe)
Die andere Achsen werden über twinx() erzeugt und mit add_axes() zu der Figur hinzugefügt
Die Methode onmove funktioniert (ich kann jede Zeile auswählen, die ich möchte), aber wenn die Zorder der ersten Zeichenachse wechselt, verberge die Linien der Achsen wie danach.
Beispiel: Wenn meine Maus über einer Linie der Axt namens ax ist, verstecken Sie die Linien von axe_2 und axe_3.
Es ist absolut genau vielen Dank – reynum