我是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>即可。也许这就是问题所在。
答案 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
。