Matplotlib zorder ax 隐藏其他斧头的线条
Matplotlib zorder axe hide other axe's lines
我有 3 个轴,一条或多条线。
由于获得了光标所在行的选择器,我尝试更改包含该行的斧头的 zorder。
精度:我在 FigureCanvasQTAgg 派生对象中
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()
第一个斧头是简单地使用Matplotlib Axes()创建的 class add added in the figure with add_axes()
axe = Axes(figure, rect)
figure.add_axes(axe)
其他轴是通过 twinx() 创建的,并使用 add_axes() 添加到图中
axe_2 = axe.twinx()
figure.add_axes(axe_2)
axe_3 = axe.twinx()
figure.add_axes(axe_3)
onmove 方法有效(我可以选择我想要的每一行)但是当第一个绘图轴的 zorder 切换时它隐藏轴的线之后如何。
示例:如果我的鼠标悬停在名为 ax 的斧头上,它会隐藏 axe_2 和 axe_3.
的行
我猜问题出在你的顶部斧头的背景颜色,它掩盖了下面的轴线。
尝试移除所有坐标轴的背景,看看是否能解决问题。
axe.patch.set_visible(False)
axe_2.patch.set_visible(False)
axe_3.patch.set_visible(False)
我有 3 个轴,一条或多条线。 由于获得了光标所在行的选择器,我尝试更改包含该行的斧头的 zorder。
精度:我在 FigureCanvasQTAgg 派生对象中
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()
第一个斧头是简单地使用Matplotlib Axes()创建的 class add added in the figure with add_axes()
axe = Axes(figure, rect)
figure.add_axes(axe)
其他轴是通过 twinx() 创建的,并使用 add_axes() 添加到图中
axe_2 = axe.twinx()
figure.add_axes(axe_2)
axe_3 = axe.twinx()
figure.add_axes(axe_3)
onmove 方法有效(我可以选择我想要的每一行)但是当第一个绘图轴的 zorder 切换时它隐藏轴的线之后如何。
示例:如果我的鼠标悬停在名为 ax 的斧头上,它会隐藏 axe_2 和 axe_3.
的行我猜问题出在你的顶部斧头的背景颜色,它掩盖了下面的轴线。
尝试移除所有坐标轴的背景,看看是否能解决问题。
axe.patch.set_visible(False)
axe_2.patch.set_visible(False)
axe_3.patch.set_visible(False)