python - matplotlib 图形 Canvas 名称

标签 python matplotlib pyqt4

我有一个使用 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/

相关文章:

python - numpy - 返回索引如果值在 3d 数组之一

python - matplotlib 文本下划线

python - 从 pyqt4 中的 QTableView 复制/粘贴多个项目?

python - 如何更改matplotlib中双头注释的头大小?

python - 如何在不使用 mpl.rc() 的情况下更改 matplotlib 补丁字体大小

python - 我用opencv把图片转成灰度,怎么在pyqt4上显示图片?

python - 将 QStringList (PyQt) 转换为普通的 python 列表

python - A-z 索引 Django

python - 从一个数据框中获取列名,并将它们作为空列添加到 Pandas 的另一个数据框中

python - 使用一个查询的输出输入另一个查询 python