linux python matplotlib 使用,关于Linux:如何在Python的matplotlib中设置“后端”?

我是matplotlib的新用户,我的平台是Ubuntu 10.04 Python 2.6.5

这是我的代码

import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt

plt.plot([1,2,3])

错误是:

/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py:41: UserWarning:

Your currently selected backend, 'agg' does not support show().

Please select a GUI backend in your matplotlibrc file ('/usr/local/lib/python2.6/dist-packages/matplotlib/mpl-data/matplotlibrc')

or with matplotlib.use()

(backend, matplotlib.matplotlib_fname()))

我安装了防颗粒几何库apt-get install libagg,但是它不起作用。

我尝试使用后端的其他参数,例如" GTK"和" TkAgg"。

我安装了python-gtk2-dev程序包,但错误仍在下面。

谁能告诉我一个可执行的后端参数及其依赖库?

这是错误:

>>> matplotlib.use('GTK')

>>> import matplotlib.pyplot as plt

Traceback (most recent call last):

File"", line 1, in

File"/usr/local/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 95, in

new_figure_manager, draw_if_interactive, show = pylab_setup()

File"/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup

globals(),locals(),[backend_name])

File"/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gtk.py", line 28, in

from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK

File"/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gdk.py", line 29, in

from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array

ImportError: No module named _backend_gdk

Your currently selected backend, 'agg' does not support show().

AGG后端用于写入文件,而不用于在窗口中呈现。请参阅matplotlib网站上的后端常见问题解答。

ImportError: No module named _backend_gdk

对于第二个错误,也许您的matplotlib发行版未使用GTK支持进行编译,或者您错过了PyGTK软件包。尝试安装它。

您是否在有权访问图形环境的终端或应用程序中调用show()方法?

按以下顺序尝试其他GUI后端:

TkAgg

WX

QTAgg

QT4Agg

非常感谢我做错的工作人员是在获取PyGTK之前设置了matplotlib

作为附带意见,我将最后尝试QTAgg,因为它将针对QT3,并且可能会在中期不推荐使用。

仅供参考,我发现我需要将matplotlib.use('Agg')放在Python导入顺序中。对于我正在做的事情(单元测试必须无头),这意味着

import matplotlib

matplotlib.use('Agg')

在我的主测试脚本的顶部。我不必触摸任何其他文件。

我必须做同样的事情,这让我很困扰。 您是否找到了另一个优雅的解决方案?

我发现,将它放在首位非常重要(并非在其他某些进口之后)。+1。

是的,这绝对是您导入任何其他matplotlib之前绝对要做的第一件事。

也可以在配置文件matplotlibrc中进行设置(如错误消息中所述),例如:

# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo

# CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG

backend : Agg

这样,如果代码与其他人共享,则无需对后端进行硬编码。

有关更多信息,请查看文档。

您发布的错误无关。第一个是由于您选择了一个不用于交互用途的后端,即agg。您仍然可以使用(并且应该使用)那些不需要用户交互的脚本来生成图。

如果您想要一个交互式的实验室环境,例如在Matlab / Pylab中,您显然会导入一个支持gui使用的后端,例如Qt4Agg(需要Qt和AGG),GTKAgg(GTK和AGG)或WXAgg(wxWidgets和Agg)。

我将首先尝试使用WXAgg,除此之外,它实际上取决于您如何安装Python和matplotlib(源代码,程序包等)。

非常感谢,我最终选择了GTKAgg

我尝试在自己的VIRTUAL_ENV中编译python,numpy,scipy,matplotlib时遇到此问题

在安装matplotlib之前,您必须构建并安装:

pygobject

pycairo

PyGTK的

然后使用matplotlib进行操作:

在构建matplotlib之前,请使用" python ./setup.py build --help"检查是否启用了" gtkagg"后端。然后构建并安装

导出之前PKG_CONFIG_PATH = $ VIRTUAL_ENV / lib / pkgconfig

在启动python之前,您可以在bash中进行操作

export MPLBACKEND=TkAgg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值