Sou um novo usuário de matplotlib, minha plataforma é Ubuntu 10.04 Python 2.6.5
Este é o meu código
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,3])
O erro é:
/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()))
- Instalei a biblioteca de geometria anti-granulação,
apt-get install libagg
mas não funciona. - Tentei usar outro argumento de backend como 'GTK' e 'TkAgg'.
- Instalei o
python-gtk2-dev
pacote, mas ainda assim o erro está abaixo. - Alguém pode me dizer um argumento de back-end executável e sua biblioteca de dependência?
Aqui está o erro:
>>> matplotlib.use('GTK')
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 95, in <module>
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 <module>
from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gdk.py", line 29, in <module>
from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array
ImportError: No module named _backend_gdk
python
linux
graphics
matplotlib
user504909
fonte
fonte
Para sua informação, descobri que precisava colocar
matplotlib.use('Agg')
primeiro na ordem de importação do Python. Para o que eu estava fazendo (teste de unidade precisava ser sem cabeça), isso significava colocarimport matplotlib matplotlib.use('Agg')
no topo do meu script de teste mestre. Não precisei mexer em nenhum outro arquivo.
fonte
Isso também pode ser definido no arquivo de configuração
matplotlibrc
(conforme explicado na mensagem de erro), por exemplo:# 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
Dessa forma, o back-end não precisa ser codificado se o código for compartilhado com outras pessoas. Para mais informações, verifique a documentação .
fonte
Os erros que você postou não estão relacionados. O primeiro é devido a você selecionar um back-end que não se destina ao uso interativo, ou seja, agg. Você ainda pode usar (e deve usar) aqueles para a geração de gráficos em scripts que não requerem interação do usuário.
Se você deseja um ambiente de laboratório interativo, como no Matlab / Pylab, obviamente importaria um back-end que suporte o uso de interface gráfica do usuário, como Qt4Agg (precisa de Qt e AGG), GTKAgg (GTK e AGG) ou WXAgg (wxWidgets e Agg).
Eu começaria tentando usar o WXAgg, fora isso realmente depende de como você instalou o Python e o matplotlib (fonte, pacote etc.)
fonte
Antes de iniciar o python, você pode fazer no bash
fonte
Você também pode tentar visualizar o gráfico em um navegador.
Use o seguinte:
matplotlib.use('WebAgg')
fonte
Eu acertei isso ao tentar compilar python, numpy, scipy, matplotlib em meu próprio VIRTUAL_ENV
Antes de instalar o matplotlib, você deve construir e instalar: pygobject pycairo pygtk
E então faça isso com matplotlib: Antes de construir matplotlib, verifique com 'python ./setup.py build --help' se o backend 'gtkagg' está habilitado. Em seguida, crie e instale
Antes de exportar PKG_CONFIG_PATH = $ VIRTUAL_ENV / lib / pkgconfig
fonte
Para novatos,
fonte