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
下面的代码片段同时适用于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
以及自动pylab
function。
c.InteractiveShellApp.extensions = ['autoreload', 'pylab'] c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']
使用easy_install的另一种可能性是您需要使用最新版本的matplotlib。 尝试:
import pkg_resources pkg_resources.require("matplotlib")
在导入matplotlib或其任何模块之前。