我有一个使用 PyQt4 构建的 GUI,其中我使用 matplotlib (FigureCanvas) 使用多个 Canvas 绘制多个图(这是有意的而不是使用子图)。对于每个 Canvas 我使用方法:
self.canvas_xx.mpl_connect('scroll_event', self.on_mouse_scroll)
其中 xx 表示 Canvas 的迭代以获得执行某些操作的信号。我希望能够通过名称引用 Canvas ,而不是使用:
ylabel = event.inaxes.axes.get_ylabel().split(' ')[0]
我使用更长的方法来引用每个图的 ylabel 名称。
我使用 dir(event) 查看了事件方法,有一个名为“canvas”的方法,但没有明显的方法来获取 Canvas 的名称。
有什么想法吗?
最佳答案
我不太清楚你的名字是什么意思,但你可以通过获取对 canvas
对象的引用
event_canvas = event.inaxes.axes.figure.canvas
和 Canvas 事件是可散列的,因此您可以将它们用作dict
other_thing = pre_populated_dict[event_canvas]
在代码中跟踪您想要的有关给定 Canvas 的其他数据。
在 python 中,一般来说,没有一种干净的方法来获取对象的引用名称(可以这样做,但你不应该这样做)。
关于python - matplotlib 图形 Canvas 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341332/