问题 使用内联/嵌入图在IPython中运行python脚本


我想在一个文件夹中有一个批处理文件 python 脚本。批处理文件应该调用脚本 IPython 并绘制内嵌/嵌入的数字。虽然有很多关于这方面的信息,但我没有让这个工作。

  • 如何运行 python 脚本用 IPython,显示嵌入的情节?
  • 我需要使用吗? pylab 或者我可以导入 matplotlib.pyplot 在脚本中?
  • 我是否必须改编脚本中的其他内容?
  • %pylab inline / %matplotlib inline 是否使用?

后面的命令给出了

In [1]: %pylab inline
UsageError: Invalid GUI request u'inline', valid ones are:[None, 'osx', 'qt4', 
'glut',   'gtk3', 'pyglet', 'wx', 'none', 'qt', 'gtk', 'tk']
In [2]: %matplotlib inline 
UsageError: Invalid GUI request u'inline', valid ones are:  [None, 'osx', 'qt4',
'glut', 'gtk3', 'pyglet', 'wx', 'none', 'qt', 'gtk', 'tk']`

到目前为止我尝试了以下(不幸)

ipython --pylab=inline example_plots.py

给我以下并退出

E:\CD\package\bin>ipython --pylab=inline example_plots.py
WARNING: 'inline' not available as pylab backend, using 'auto' instead.
WARNING: 'inline' not available as pylab backend, using 'auto' instead.

或从控制台运行,但像往常一样弹出数字(并立即关闭):

E:\CD\package\bin>ipython --pylab=inline example_plots.py
WARNING: 'inline' not available as pylab backend, using 'auto' instead.
WARNING: 'inline' not available as pylab backend, using 'auto' instead.
Using matplotlib backend: Qt4Agg
# runs python script as usual (not inline)

以下 如何使IPython笔记本matplotlib内联
使用批处理文件(和控制台一样):

ipython notebook --pylab inline example_plots.py
2014-01-26 17:52:10.101 [NotebookApp] Using existing profile dir: u'C:\\Users\\Robert\\.ipython\\profile_default'
2014-01-26 17:52:10.111 [NotebookApp] Using MathJax from CDN: http://cdn.mathjax.org/mathjax/latest/MathJax.js
2014-01-26 17:52:10.127 [NotebookApp] Serving notebooks from local directory: E:\CD\package\bin
2014-01-26 17:52:10.128 [NotebookApp] The IPython Notebook is running at: http://127.0.0.1:8888/
2014-01-26 17:52:10.128 [NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

打开一个空的笔记本就可以了。

我还应该尝试什么?

Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]
IPython 1.1.0 -- An enhanced Interactive Python.

10655
2018-01-26 17:21


起源

我想你正在尝试使用 inline 终端中的选项 - 这将无法工作,因为终端无法显示图形。 inline 需要Qt控制台或笔记本电脑。但我不确定你想把这些数字嵌入到什么位置? - Thomas K
@ThomasK如何区分终端和控制台? - embert
你什么意思? IPython有Qt控制台(ipython qtconsole),它能够显示图形。 - Thomas K
@thomask所以只有qtconsole可以做到这一点。我认为一个可以运行一个脚本,其中有一些情节与ipython,所以 绘图不会在单独的窗口中弹出,而是显示在控制台中。那可能吗?。我试过了 ipython qtconsole --pylab inline example_plots.py 它启动控制台,但就是这样。 - embert
可能重复 在脚本执行后启动ipython qtconsole als交互式解释器 - embert


答案:


格雷格在这里回答:
在脚本执行后启动ipython qtconsole作为交互式解释器

它使用的工作原理 -m 旗

ipython qtconsole --matplotlib inline -m example_plots

要么

ipython qtconsole --pylab inline -m example_plots

但我不知道,这两个选项之间的区别是什么 pylab inline 和 matplotlib inline。从 这里 我认为,我宁愿使用 --matplotlib inline

即使添加结束它的文件做我想要的,但它抱怨 unknown failure 执行后。

pyplot.show(block=True) 会给和 unknown failure也是


7
2018-01-28 09:23



pylab 导入了大量的东西,但现在却气馁,因为这很难看出事情的来源。 matplotlib 设置mpl后端,但不会将内容导入用户命名空间。 - Thomas K


如何使用IPython运行python脚本,显示嵌入的图?

  • 您需要使用qt控制台。
  • ipython qtconsole <yourscript.py>
  • 如果你安装了jupyter,那就更好了。
  • jupyter qtconsole <yourscript.py>

我需要使用pylab还是我可以在脚本中导入matplotlib.pyplot?

  • %matplotlib inline 在导入matplotlib.pyplot之前。

是否使用%pylab内联/%matplotlib内联?

  • 是。但是pylab已经被折旧了。使用 %matplotlib inline

2
2018-02-19 16:21