我希望能够在内联显示matplotlib图形或在脚本文件中使用QT后端进行切换,该脚本文件基于名为inlinemode的变量,如下面的代码片段
import matplotlib.pylab as plt
inlinemode = False
if inlinemode:
print "plot will be inline..."
else:
print "plot will be qt..."
plt.switch_backend('qt4agg')
plt.figure()
plt.plot(range(10))
默认情况下,我的IPython控制台以内联模式启动,并且执行上面的代码片段仍会生成内联图形而不是qt窗口。如果可以在if块中发送IPython magic%matplotlib inline -or-%matplotlib qt,则可以完成此任务。但是,从我能够收集到的内容来看,无法从脚本文件中发送这些魔法。
任何建议都将不胜感激!
(仅供参考:我在Windows 10上的Anaconda Python 2.7中使用Spyder运行)
答案 0 :(得分:3)
这可以使用以下块,这将允许使用%run
或直接通过标准python在IPython中运行脚本。
try:
import IPython
shell = IPython.get_ipython()
shell.enable_matplotlib(gui='inline')
except:
pass
这就是魔术%matplotlib inline
实际上在幕后做的事情。您可以将关键字参数更改为gui='qt'
以选择不同的后端。