Matplotlib:自定义Qt4Agg后端

时间:2014-03-11 17:01:08

标签: python matplotlib

我正在尝试自定义Qt4Agg后端。为了确保我没有插入任何错误,作为起点,我将matplotlib / backends / backend_qt4agg.py复制到我的PYTHONPATH上的新位置,重命名为" my_backend.py"并更正两个导入语句如下:

from backend_agg import ...
from backend_qt4 import ...

变为

from matplotlib.backends.backend_agg import ...
from matplotlib.backends.backend_qt4 import ...

在我的matplotlib RC文件中,我将后端更改为module://my_backend.py。

使用" show()"从脚本绘图时,一切正常。但是当试图在以" ipython --pylab"开始的ipython会话中执行时,该图显示出来,但没有任何东西可以绘制并且我得到一个旋转轮。我该如何解决这个问题?

我使用的是OSX Mavericks,Python 2.7.3,IPython 1.1.0和Matplotlib 1.3.1。

由于

1 个答案:

答案 0 :(得分:0)

出现问题是因为GUI主循环无法启动,因为IPython无法识别后端,因此,它不知道要使用哪个GUI。这可以通过在IPython启动文件中手动启动GUI主循环来解决。在〜/ .ipython / profile_default / startup / my_backend_start_gui.py中我放置了以下代码:

import matplotlib
if matplotlib.rcParams['backend'] == 'module://my_backend':
    from IPython.lib.inputhook import enable_gui
    enable_gui('qt4')

现在一切正常。