我正在尝试自定义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。
由于
答案 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')
现在一切正常。