使用 matplotlib 在 Spyder 中进行交互式(?)绘图

Posted

技术标签:

【中文标题】使用 matplotlib 在 Spyder 中进行交互式(?)绘图【英文标题】:Interactive(?) plotting in Spyder with matplotlib 【发布时间】:2012-05-29 15:33:54 【问题描述】:

我正在尝试从 Matlab 迁移到 Python,但无法弄清楚如何在 Spyder IDE 中进行交互式(?)绘图工作。我的测试代码如下所示。使用 .ion() 没有任何反应,我得到一个快速绘制的图形,然后窗口立即关闭并吐出我的 Hello。没有 .ion() 图形被正确绘制,但脚本挂起并且在我手动关闭图形窗口之前不会吐出 Hello。我希望脚本像 matlab 脚本一样运行并绘制我要求它的各种数字,同时进行任何计算并将输出放在终端(?)窗口上。

我尝试在 ipython 中一次输入一行,它似乎可以工作,但我更愿意以脚本表格式工作,这样我可以在调整代码的行之间来回切换。

如果有帮助,我正在使用 Windows 7。我安装了 python(x,y) 并从那里启动 spyder(spyder 版本 2.1.9)。我见过一些类似的问题,但我无法解决这个问题。在我看来,有人说 ipythons 的最新版本与 spyder 不兼容,但后来我看到另一篇文章说无论如何都应该支持交互式绘图。谢谢您的帮助!如果有人有我可以用来模仿 matlab 行为的替代环境,那我真的是 Python 新手。

import matplotlib.pylab as plt
plt.ion()
plt.plot([1,2,3])
plt.show()
plt.ylabel('This is an axis')
print ("Hello")

【问题讨论】:

IPython 版本是什么,按 F6 时运行配置中的解释器设置是什么?如果版本是 IPython 0.10.2 并且您选择“在当前 Python 或 IPython 解释器中执行”,它应该是交互式的。 哇,谢谢你这么快的反应,我正准备睡觉=P。 IPython 版本是 0.10.2.. 按 F6 显示解释器设置为“在新的专用 python 解释器中执行”.. 将其切换为“在当前 Python 或 IPython 解释器中执行”修复了我遇到的挂起问题。 @Daniel 当你解决了你的问题后,你应该回答你的问题并将你的答案标记为正确的。 没想到,谢谢,我会的。 【参考方案1】:

运行配置应设置为 在当前 Python 或 IPython 解释器中执行,默认情况下允许交互式绘图。如果解释器设置为在新的专用 Python 解释器中执行,则必须选择执行后与 Python 解释器交互

【讨论】:

读者注意:这些选项目前位于 Spyder > Tools > Preferences > Run【参考方案2】:

在我的情况下,这些是 spyder 中的默认设置,但是在我输入以下内容之前它仍然没有显示绘图:%matplotlib inline

不确定这是否有帮助,但想在这里分享。

【讨论】:

以上是关于使用 matplotlib 在 Spyder 中进行交互式(?)绘图的主要内容,如果未能解决你的问题,请参考以下文章

Anaconda matplotlib 升级后 Spyder 停止工作

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

如何更改 matplotlib - spyder 中的默认绘图颜色? [复制]

matplotlib 中的动画在 spyder 中不起作用

如何在 Spyder/IPython/matplotlib 中再次获得交互式绘图?

Matplotlib pyplot 冻结,除了 Spyder 上的白屏外不显示任何内容