在 Spyder IDE 中使用 Matplotlib 绘制内联或单独的窗口

Posted

技术标签:

【中文标题】在 Spyder IDE 中使用 Matplotlib 绘制内联或单独的窗口【英文标题】:Plot inline or a separate window using Matplotlib in Spyder IDE 【发布时间】:2015-06-04 01:29:40 【问题描述】:

当我使用 Matplotlib 绘制一些图形时,默认的内联绘图通常很好。但是,当我绘制一些 3D 图形时,我希望将它们放在单独的窗口中,以便可以启用旋转等交互。我可以在 Python 代码中配置要内联显示的图形以及要在新窗口中显示的图形吗?

我知道在 Spyder 中,单击工具、首选项、Ipython 控制台、图形并在图形后端下选择“自动”而不是“内联”。但是,这会使所有数字都在新窗口中。当我有很多情节时,它可能会很混乱。所以我只希望那些 3D 绘图在新窗口中,但所有其他 2D 绘图保持内联。有可能吗?

谢谢!

【问题讨论】:

【参考方案1】:

类型

%matplotlib qt

当您想要在单独的窗口中显示图表时

%matplotlib inline

当你想要一个内联图时

【讨论】:

是否有一个选项可以在新的打开窗口或控制台中显示绘图,例如在 Rstudio 中的单独窗口中?例如。当绘制 10 个图时,有 10 个打开的窗口而且一直滚动浏览整个控制台是很烦人的。因此,我希望可以将它们寻址到某个窗口,但我不知道如何..? 我应该在 Python Spyder 的哪里输入?【参考方案2】:

转到 Tools >> Preferences >> IPython console >> Graphics >> Backend:Inline,将“Inline”改为“Automatic”,点击“OK”

在控制台重置内核,绘图将出现在单独的窗口中

【讨论】:

你知道是否可以在某个 spyderrc 配置文件中设置这个选项吗? 编辑,我找到了:/home/user/.config/spyder-py3/spyder.ini 它应该包含 pylab/backend = 1 我认为【参考方案3】:

魔术命令如

%matplotlib qt  

在 iPython 控制台和 Notebook 中工作,但不在脚本中工作。

在这种情况下,导入后:

from IPython import get_ipython

使用:

get_ipython().run_line_magic('matplotlib', 'inline')

用于以下代码的内联绘图,以及

get_ipython().run_line_magic('matplotlib', 'qt')

用于在外部窗口中绘图。

编辑:上述解决方案并不总是有效,具体取决于您的操作系统/Spyder 版本 Anaconda issue on GitHub。将图形后端设置为自动(如另一个答案所示:工具>>首选项>> IPython控制台>>图形->自动)为我解决了这个问题。

然后,在重新启动控制台后,可以使用 get_ipython() 命令在内联和外部绘图窗口之间切换,而无需重新启动控制台。

【讨论】:

+1 在 Ubuntu 下并在 firefox 下运行 Jupyter / IPython,最后一行 get_ipython().run_line_magic('matplotlib', 'qt') 是打开带有 matplotlib-plot 的交互式窗口所必需的! 也适用于 vscode python 交互式窗口,其中魔法命令并不总是有效【参考方案4】:

我已在 Spyder 首选项中将 IPython 控制台后端设置为 Automatic

在我的脚本中,我现在可以使用 switch_backend 作为 plt.switch_backend('module://ipykernel.pylab.backend_inline')plt.switch_backend('Qt5Agg') 在每个新情节之前,使其成为内联或独立/交互式。

(使用 Spyder 4.2.2 测试。)

【讨论】:

【参考方案5】:

如果您只想查看 1 或 2 个图表,您也可以尝试在绘图窗口中手动取消停靠它们。所以在右上角的窗口

    选择“绘图”选项卡 单击带有 3 个水平条的按钮 选择“取消停靠”

它将在新窗口中打开绘图。当您关闭窗口时,它会停靠回来。

【讨论】:

以上是关于在 Spyder IDE 中使用 Matplotlib 绘制内联或单独的窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 的 spyder IDE 中添加模块

将模块(特别是 pymorph)添加到 Spyder(Python IDE)

无法在 Spyder IDE 的变量资源管理器中打开数据框

Spyder IDE:Mac 上没有名为 pip 的模块

在 spyder IDE 中,运行选择工作正常,运行文件保持运行/挂起

Spyder3 Python IDE 不启动:“此 Windows 版本不支持所需的蓝牙 API”