在Spyder中,使用Matplotlib进行交互式缩放等绘图。

28

我最近从Enthought Canopy切换到Anaconda,并使用Spyder IDE。 我注意到当我绘制一些数据时,

import matplotlib.pyplot as plt
plt.figure()
plt.plot(rigs2)
plt.ion()
plt.show()

它会作为内联图在IPython控制台中显示:

plt.plot()命令的结果

然而,在Enthought中,图表通常会以一个带有缩放、后退和前进按钮的单独窗口显示。是否有办法在Spyder中实现相同的效果呢?


可能是重复的问题:https://dev59.com/jmYq5IYBdhLWcg3wtCzO - Norman
4个回答

56

从菜单中选择工具 > 首选项,然后在左侧的类别列表中选择IPython控制台,再选择顶部的图形选项卡,将图形后端内嵌式更改为例如Qt
但对于我来说,这些图形总是出现在背景中。
(我使用捆绑在WinPython 3.4中的Spyder 3.0.0dev。)


6
谢谢 Norman,虽然一开始按照你建议的更改“工具” -> “选项”并没有起作用,但是我在命令行中输入了“%matplotlib qt”,之后图形会在新窗口打开并可以进行缩放。 - Kurt Peek
6
是的,偏好设置对于新的 IPython 控制台才会生效;已经打开的任何控制台标签都不会受到影响。 - Norman
1
是的,Norman 是对的:在“工具”>“首选项”中更改图形后端后,只需重新启动 Spyder 即可。无需运行“%matplotlib qt”。 - wafflecat

13

即使这是一个老问题,我的解决方案却没有使用GUI。

仅在控制台中绘制图形:

%matplotlib inline 
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')

回到在控制台之外使用绘图:

%matplotlib qt5
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')

我不需要重新启动我的 spyder 或者核心。

会话信息:

spyder 3.3.2
python 3.6.8
windows 10. 

%matplotlib qt 也可以使用。请注意,这两个命令都可以在控制台中输入。如果作为程序的一部分,则会发出警告:“这不是有效的Python代码。如果您想使用IPython魔法、灵活的缩进和提示移除功能,我们建议您将此文件保存为.ipy扩展名”。但它仍然可以工作。 - mins

1

记得重新启动内核,然后就可以了。


1
你可能不需要重新启动 Spyder。只需转到工具菜单并重新启动内核即可。然后您应该可以看到绘图。请注意,这是在您设置了适当的图形首选项之后。

2
什么是“图形的适当偏好设置”? - Carsten
“适当的首选项”指的是从工具-首选项-中设置图形后端为“inline”或“automatic”。另外,内核重启选项在“控制台”菜单中。 - Dr Nisha Arora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接