Se eu definir meu back-end como template
in ~/.matplotlib/matplotlibrc
, posso reproduzir seus sintomas:
~ / .matplotlib / matplotlibrc:
# backend : GtkAgg
backend : template
Note-se que o arquivo matplotlibrc
não pode ser no diretório ~/.matplotlib/
. Nesse caso, o código a seguir mostra onde está:
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
In [1]: import matplotlib.pyplot as p
In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]
In [3]: p.show()
Se você editar ~/.matplotlib/matplotlibrc
e alterar o back-end para algo como GtkAgg
, deverá ver um gráfico. Você pode listar todos os back-end disponíveis em sua máquina com
import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
Deve retornar uma lista como:
['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']
Referência:
ImportError: No module named _backend_gdk
~/.config/matplotlib/matplotlibrc
(pelo menos para python 3). Eu apenas tive um problema relacionado e acho que foi causado pelo uso do matplotlib no python 2.7, que criou um~/.matplotlib/
diretório e impediu o python 3 de ler a configuração~/.config/matplotlib/
. A exclusão~/.matplotlib/
corrigiu o problema para mim.Encontrei exatamente o mesmo problema no Ubuntu 12.04, porque instalei o matplotlib (dentro de uma virtualenv) usando
Para encurtar a história, meu conselho é: não tente instalar o matplotlib usando o pip ou manualmente; deixe um gerenciador de pacotes real (por exemplo, apt-get / synaptic) instalá-lo e todas as suas dependências para você.
Infelizmente, os back-end do matplotlib (métodos alternativos para renderizar suas plotagens) têm todos os tipos de dependências com as quais o pip não lidará. Pior ainda, falha silenciosamente; isto é,
pip install matplotlib
parece instalar o matplotlib com sucesso. Mas quando você tenta usá-lo (por exemplopyplot.show()
), nenhuma janela de plotagem aparecerá. Tentei todos os back-ends diferentes sugeridos pelas pessoas na web (Qt4Agg, GTK etc.) e todos falharam (ou seja, quando tentei importar o matplotlib.pyplot, receboImportError
porque está tentando importar alguma dependência que está faltando). Depois, pesquisei como instalar essas dependências, mas isso me fez desistir de usar o pip (no virtualenv) como uma solução de instalação viável para qualquer pacote que possua dependências de pacotes que não sejam do Python.Toda a experiência me enviou de volta ao apt-get / synaptic (ou seja, o gerenciador de pacotes Ubuntu) para instalar software como o matplotlib. Isso funcionou perfeitamente. Obviamente, isso significa que você só pode instalar nos diretórios do sistema, sem vantagens de virtualenv, e está preso às versões que o Ubuntu distribui, o que pode estar muito atrás da versão atual ...
fonte
--system-site-packages
opção?pip install
estáagg
. Não sei por que, mas você pode alterá-lo de acordo com a resposta do unutbu.pip
tem a principal vantagem de instalar uma versão atualizada -apt
instala uma versão desatualizada. Às vezes, existem correções de bugs / novos recursos que você deseja / precisa.virtualenv
funcionou! E eu consegui instalar o matplotlib 1.4 a partir do sistema de origem (no Ubuntu), mas não novirtualenv
.% matplotlib inline
Para mim, trabalhando com notebook, adicionando a linha acima antes que o enredo funcione.
fonte
%pylab inline
no meu notebook como observado por @Bhanu Pratap SinghPara referência futura,
Eu encontrei o mesmo problema - o pylab não estava aparecendo no ipython. O problema foi corrigido alterando o arquivo de configuração do ipython {ipython_config.py}. No arquivo de configuração
c.InteractiveShellApp.pylab = 'auto'
Mudei 'auto' para 'qt' e agora vejo gráficos
fonte
agg
, eu não faço coisa que%pylab inline
vai funcionar, nem gráficos mostram quando você executar scripts diretamente ou seja:python myscript.py
. a resposta do unutbu deve corrigi-lo em todos os lugares.Basta digitar:
plt.ion()
Veja https://www.youtube.com/watch?v=1zmV8lZsHF4 às 23:30!
plt
é usado por causa da minha importação:import matplotlib.pyplot
as pltEstou usando python2.7 em um mac com o iTerm2.
fonte
O que resolveu meu problema foi usar as duas linhas abaixo no caderno ipython na parte superior
E funcionou. Estou usando o Ubuntu16.04 e ipython-5.1
fonte
%pylab inline
faz com que ele funcione.Eu tive que instalar o matplotlib da fonte para que isso funcionasse. As instruções principais (em http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) são:
Ao alterar o back-end, como o @unutbu diz, acabei enfrentando muitos problemas com todos os diferentes back-ends também.
fonte
Adicionar as duas linhas a seguir antes de importar o pylab parece funcionar para mim
fonte
Certifique-se de ter este script de inicialização ativado: (Preferências> Console> Opções avançadas)
Se o PYTHONSTARTUP padrão estiver ativado, você não terá um gráfico interativo
fonte
Semelhante ao @Rikki, resolvi esse problema atualizando
matplotlib
compip install matplotlib --upgrade
. Se você não pode atualizar a desinstalação e reinstalação, pode funcionar.fonte
Para mim, o problema acontece se eu simplesmente criar um arquivo vazio no macOS. Adicionando "backend: macosx", ele corrige o problema.
matplotlibrc
~/.matplotlib
Eu acho que é um bug: se
backend
não for especificado no meumatplotlibrc
, deve levar o valor padrão.fonte
Depois de executar seu código, inclua:
fonte
Descobri que precisava
window = Tk()
e depoiswindow.mainloop()
fonte
Para o Ubuntu 12.04:
fonte