Python matplotlib图形画布名称

Python matplotlib图形画布名称,python,matplotlib,pyqt4,Python,Matplotlib,Pyqt4,我有一个使用PyQt4构建的GUI,其中我使用matplotlib(FigureCanvas)使用多个画布绘制多个绘图(这是有意的,而不是使用子绘图)。对于我使用的每个画布方法: self.canvas_xx.mpl_connect('scroll_event', self.on_mouse_scroll) 其中xx表示画布的迭代,以获取执行某些操作的信号。我希望能够通过画布的名称来引用画布,而不是使用: ylabel = event.inaxes.axes.get_ylabel().spli

我有一个使用PyQt4构建的GUI,其中我使用matplotlib(FigureCanvas)使用多个画布绘制多个绘图(这是有意的,而不是使用子绘图)。对于我使用的每个画布方法:

self.canvas_xx.mpl_connect('scroll_event', self.on_mouse_scroll)
其中xx表示画布的迭代,以获取执行某些操作的信号。我希望能够通过画布的名称来引用画布,而不是使用:

ylabel = event.inaxes.axes.get_ylabel().split(' ')[0]
在这里,我使用更长的方法来引用每个图的ylabel名称

我使用:dir(event)查看了event方法,有一个名为“canvas”的方法,但是没有明显的方法来获取canvas的名称


有什么想法吗

我不太清楚您所说的名称是什么意思,但您可以通过

event_canvas = event.inaxes.axes.figure.canvas
画布事件是可散列的,因此您可以将它们用作
dict

other_thing = pre_populated_dict[event_canvas]
跟踪代码中给定画布的其他数据


在python中,通常没有一种干净的方法来获取对象引用的名称(可以这样做,但不应该这样做)。

名称是什么意思?您可以通过
event.inaxes.axes.figure.canvas
获取对画布对象的引用,谢谢!我所说的“name”是指我想要获取对发送事件的画布的引用(鼠标当前所在位置)。换句话说,我想知道哪个self.canavsxx发送了事件,例如:“self.canvas01”发送了事件。但这似乎不是干净的方式,我将使用每个画布的“ylabel”,因为它们是不同的。