matplotlib显示什么,虽然我叫show

时间:2013-07-04 03:14:27

标签: matplotlib ipython

我是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()只会保存一张空白的无花果。 我通过设置backends ='GtkAgg'或'QtAgg'尝试了matplotlib does not show my drawings although I call pyplot.show()的解决方案,但它没有用。

感谢您的建议。 :)

  

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

     

我认为原因如下:

     

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

     

Updata2 :我只想知道 gcf()在QT控制台中返回了不同的引用它在WinPython Interpreter中返回了相同的引用< / strong>即可。也许这就是问题所在。

1 个答案:

答案 0 :(得分:0)

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

了解Matplotlib的工作模式可能有点令人困惑,请参阅Matplotlib pylab and pyplot: how they are related?

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

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

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