matplotlib中没有绘图窗口

我刚刚在Ubuntu 9.10中使用了突触包系统安装了matplotlib。 但是,当我尝试以下简单的例子

>>> from pylab import plot; >>> plot([1,2,3],[1,2,3]) [<matplotlib.lines.Line2D object at 0x9aa78ec>] 

我没有任何情节窗口。 任何想法如何让情节窗口显示?

你可以input

 import pylab pylab.show() 

或者更好,使用ipython -pylab

pylab.show()工作,但块(你需要closures窗口)。

一个更方便的解决scheme是在开始时执行pylab.ion() (交互模式):所有(pylab当量) pyplot.*命令立即显示它们的图。 有关交互模式的更多信息可以在官方网站上find。

我也第二次使用更方便的ipython -pylab (– --pylab ,在较新的版本中),它允许你跳过from … import …部分(在新的IPython版本中也使用%pylab工作)。

尝试这个:

 import matplotlib matplotlib.use('TkAgg') 

在导入pylab之前

任何错误显示? 这可能是没有设置后端的问题。 您可以从Python解释器或主目录中的configuration文件( .matplotlib/matplotlibrc )来设置它。

在代码中设置后端,你可以做

 import matplotlib matplotlib.use('Agg') 

其中“Agg”是后端的名称。 哪些后端存在取决于您的安装和操作系统。

http://matplotlib.sourceforge.net/faq/installing_faq.html#backends

http://matplotlib.org/users/customizing.html

下面的代码片段同时适用于Eclipse和Python Shell:

 import numpy as np import matplotlib.pyplot as plt import pylab # Come up with x and y x = np.arange(0, 5, 0.1) y = np.sin(x) # Just print x and y for fun print x print y # plot the x and y and you are supposed to see a sine curve plt.plot(x, y) # without the line below, the figure won't show pylab.show() 

现代ipython使用“–matplotlib”参数和一个可选的后端参数。 它默认为“自动”,这通常在Mac和Windows上足够好。 我没有在Ubuntu或任何其他的Linux发行版上testing过,但我希望它能正常工作。

 ipython --matplotlib 

如果遇到pylab.show()冻结ipython窗口的问题(这可能是Mac OS X特有的;不确定),你可以在ipython窗口中使用cmd-c,切换到绘图窗口, 。 显然将来调用pylab.show()不会冻结ipython窗口,只有第一次调用。 不幸的是,我发现每次我重新安装matplotlib时,plot()与show()的交互行为都会改变,所以这个解决scheme可能并不总是成立。

如果使用--pylab选项启动ipython,则不需要调用show()draw()试试这个:

 ipython --pylab=inline 

--pylab不再适用于Jupyter,但幸运的是,我们可以添加调整ipython_config.py文件来获取pylab以及自动pylabfunction。

 c.InteractiveShellApp.extensions = ['autoreload', 'pylab'] c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab'] 

使用easy_install的另一种可能性是您需要使用最新版本的matplotlib。 尝试:

 import pkg_resources pkg_resources.require("matplotlib") 

在导入matplotlib或其任何模块之前。