Eu atualizei do Python (x, y) 2.7.2.3 para 2.7.6.0 no Windows 7 (e fiquei feliz em ver que finalmente posso digitar function_name?
e ver a docstring no Inspetor de Objetos novamente), mas agora a plotagem não funciona como está costumava.
Anteriormente (Spyder 2.1.9, IPython 0.10.2, matplotlib 1.2.1), quando eu plotei este script , por exemplo, ele plotaria os subenredos lado a lado em uma janela interativa:
Agora (Spyder 2.2.5, IPython 1.2.0, Matplotlib 1.3.1), quando tento plotar as coisas, ele faz os subplots como pequenos PNGs embutidos, o que é uma mudança no IPython :
Então, entrei em opções e encontrei o seguinte:
o que parece dizer que posso obter os antigos tramas interativas de volta, com os 4 subtramas exibidos lado a lado, mas quando mudo para "Automático" e tento traçar algo, não faz nada. Nenhum enredo.
Se eu mudar este menu suspenso para Qt ou desmarcar "Ativar suporte", ele representa apenas a primeira subtrama, ou parte dela, e então para:
Como obtenho o antigo comportamento de 4 subtramas lado a lado em uma única figura com a qual posso interagir?
fonte
Respostas:
Altere o back-end para automático:
Ferramentas> preferências> console IPython> Gráficos> Back-end de gráficos> Back-end: automático
Em seguida, feche e abra o Spyder.
fonte
python > preferences > IPython console > Graphics > Graphics backend > Backend: Automatic
Você pode controlar isso rapidamente digitando comandos mágicos integrados no console IPython do Spyder, que acho mais rápido do que selecioná-los no menu de preferências. As alterações têm efeito imediato, sem a necessidade de reiniciar o Spyder ou o kernel.
Para mudar para gráficos "automáticos" (ou seja, interativos), digite:
então, se você quiser voltar para "inline", digite o seguinte:
(Observação: esses comandos não funcionam em consoles não IPython)
Veja mais informações sobre este tópico: Objetivo de "% matplotlib inline"
fonte
matplotlib inline File "<stdin>", line 1 %matplotlib inline ^ SyntaxError: invalid syntax
Após aplicar: Ferramentas> preferências> Gráficos> Backend> Automático Basta reiniciar o kernel
E com certeza você obterá um gráfico interativo. Happy Coding!
fonte
Como disse nos comentários, o problema está no seu script. Na verdade, existem 2 problemas:
None
algum lugar. Talvez devido ao defaultdict?show()
após cada subtrama.show()
deve ser chamado uma vez no final do seu script. A alternativa é usar o modo interativo, procureion
na documentação do matplotlib.fonte
Na verdade, isso é muito fácil de corrigir e não requer nenhuma codificação:
1.Clique na guia Plots acima do console. 2. Então, no canto superior direito da tela de plotagens, clique no botão de opções. 3. Por último, desmarque o botão "Silenciar plotagem embutida"
Agora execute novamente seu script e seus gráficos devem aparecer no console.
Felicidades.
fonte