gpt4 book ai didi

qt - IPython shell with %matplotlib : the qt windows displaying figures disappear after stepping away from the terminal application. 这个问题可以修复吗?

转载 作者:行者123 更新时间:2023-12-02 20:52:48 24 4
gpt4 key购买 nike

在我的设置中,从 IPython shell 中使用 %matplotlib 魔法创建的图形弹出窗口(不完全确定它是如何工作的)在从我的终端应用程序切换到任何其他正在运行的应用程序后消失,然后返回再次。因此,举例来说,如果我正在绘制一个图形并想要在 Chrome 中检查 StackOverflow 帖子,那么在返回到我的终端应用程序后,我必须重新声明命令 plt.show() 来重新打开弹出窗口。

这种行为听起来是否不典型(我的设置可能存在问题),或者如果它是典型的,是否有一些可能的解决方法?这对于我的安装/操作系统来说可能是独一无二的吗?

我使用的是 MacOS Sierra,运行最新(刚刚更新)版本的 Anaconda 和 IPython。使用 iTerm2 和 Terminal 都会出现此问题;好像和终端应用没有关系。

注意:我的目标是在终端中复制使用 matlab -nodesktop 生成绘图的行为,这会从 Matlab 应用程序创建持久的图形窗口。

最佳答案

编辑:我决定有条不紊地研究 ipython 和 jupyter qtconsole 选项的不同组合,这里是令人疯狂且令人着迷的不一致结果,使用命令行参数,IPython 加载后的魔术命令,或两者的某种组合(简而言之,应该使用 ipython --matplotlib=qt5 ):

对于 iPython 终端:

指定--gui :

  • --gui=qt , %matplotlib qt :尝试声明图后,得到“缺少 1 个必需的位置参数:'图'”(嗯...什么?)
  • --gui=qt --matplotlib=qt : 得到“没有名为 PyQt4 的模块”
  • --gui=qt , %matplotlib qt5 :成功;与 osx 不同的窗口格式,保存对话框提供文件类型选择
  • --gui=qt --matplotlib=qt5 :成功;与上面相同
  • --gui=qt , %matplotlib osx :成功;窗口弹出为单独的应用
  • --gui=qt --matplotlib=osx : QApplication 窗口永远不会启动;如图显示为弹出窗口/终端应用程序的一部分,没有有自己的“窗口”

不指定 GUI:

  • --matplotlib=qt5%matplotlib qt5 :成功

  • --matplotlib=qt%matplotlib qt : 得到“没有名为 PyQt4 的模块”

  • --matplotlib=osx%matplotlib osx : QApplication 窗口永远不会启动;数字显示为临时弹出窗口

对于 Jupyter QTConsole(即 jupyter qtconsole ... )

指定--gui :

  • --gui=qt , %matplotlib qt5 :获取“运行时错误:无法激活多个 GUI 事件循环”

  • --gui=qt --matplotlib=qt5 :有效,并为图形创建 QApplication 窗口(说真的...什么?那为什么 %matplotlib qt5 不起作用?)

  • --gui=qt --matplotlib=inline%matplotlib inline :尝试使用 plt.show() 后,获取“matplotlib当前正在使用非GUI后端”

  • --gui=qt , %matplotlib osx :获取“运行时错误:无法激活多个 GUI 事件循环”

  • --gui=qt --matplotlib=osx :可以,但没有 QApplication 窗口;再说一遍,只是一个无窗口的弹出窗口。

不指定 GUI:

  • --matplotlib=qt5%matplotlib qt5 :与我们指定 GUI 时相同:有效

  • --matplotlib=osx%matplotlib osx :与我们指定 GUI 时相同:可以工作,但没有 QApplication 窗口

  • --matplotlib=inline%matplotlib inline :尝试使用 plt.show() 后,获取“matplotlib当前正在使用非GUI后端”

  • --matplotlib=qt : get "Eventloop 或 matplotlib 集成失败。是否安装了 matplotlib?"

  • %matplotlib qt : 得到“没有名为 PyQt4 的模块”


原始答案:

只需使用

%gui qt 

magic,后跟任何 %matplotlib <backend>基于 GUI 的;在Mac上,我使用%matplotlib osx 。 gui 魔法创建一个持久的 Qt 窗口作为它自己的 QApplication,而不是临时的弹出窗口。

关于qt - IPython shell with %matplotlib : the qt windows displaying figures disappear after stepping away from the terminal application. 这个问题可以修复吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com