1

我是matplotlib的新手。

最近我在#Win-7 64bit# 上使用#WinPython-64bit-3.3.2.1#,当我在IPython Qt Control 上键入代码时,如下所示:

In [1]: plot(range(3))    
Out[1]: [<.matplotlib.lines.Line2D at 0x64ae390>] 
% There is a plot. 
In [2]: show() 
%nothing happened.

演出后应该有剧情。但是什么也没发生,没有错误信息。savefig() 只会保存一个空白无花果。我尝试了matplotlib 的解决方案,虽然我通过设置 backends = 'GtkAgg' 或 'QtAgg' 来调用 pyplot.show(),但它没有显示我的图纸,但它不起作用。

谢谢你的建议。:)

Updata1:使用'WinPython Interpreter.exe'代替'IPython QT Console.exe'。然后我输入了相同的代码并且show()工作正常。后端设置为GtkAgg.

我认为原因如下:

由于 WinPythonInterpreter 是一个命令窗口,它需要一个新窗口来显示绘图。IPython 支持交互式数据可视化,它不需要另一个窗口。

Updata2:我刚刚发现gcf()QT 控制台中返回了不同的引用,并且在 WinPython 解释器中返回了相同的引用。也许这就是问题所在。

4

1 回答 1

0

WinPython IPython QT 控制台似乎默认为带有内联后端的 pylab,如评论中建议的 mutzmatron。

了解 Matplotlib 在什么模式下工作可能会有点令人困惑,请参阅Matplotlib pylab 和 pyplot:它们是如何相关的?

我倾向于使用 Python 发行版Anaconda,它的 QTConsole 默认不预加载 pylab,因此您可以导入 pyplot 并使用 show(),使用 WinPython,您可以通过转到 WinPython*\python*\Scripts 来启动 IPython QT 控制台带有 Windows 命令提示符并启动的目录ipython3.exe qtconsole

import matplotlib.pyplot as plt
plt.plot(range(3))
plt.show()

虽然在绘图打开时会停止 IPython QT 控制台中的执行。您可以检测我的 Windows 7 安装上plt.get_backend()使用的 Anaconda IPython QT 控制台正在使用哪个后端。QT4Agg

于 2013-07-05T19:34:57.340 回答