Je suis passé de Python (x, y) 2.7.2.3 à 2.7.6. sous Windows 7 (et j'étais heureux de voir que je peux enfin taper function_name?
et voir la docstring dans l'inspecteur d'objets. encore) mais le tracé ne fonctionne plus comme avant.
Auparavant (Spyder 2.1.9, IPython 0.10.2, matplotlib 1.2.1), lors du tracé ce script , par exemple, les tracés secondaires étaient tracés côte à côte dans une fenêtre interactive:
Maintenant (Spyder 2.2.5, IPython 1.2.0, Matplotlib 1.3.1), lorsque je tente de tracer des choses, les sous-graphes sont créés sous forme de minuscules PNG en ligne, ce qui est un changement dans IPython :
Alors je suis allé dans les options et j'ai trouvé ceci:
ce qui semble indiquer que je peux récupérer les anciennes parcelles interactives, avec les 4 sous-parcelles affichées côte à côte, mais lorsque je passe en mode "Automatique" et que j'essaie de tracer quelque chose, cela ne fait rien. Pas de parcelles du tout.
Si je bascule cette liste déroulante sur Qt ou décoche la case "Activer le support", elle trace uniquement la première parcelle, ou une partie de celle-ci, puis s'arrête:
Comment puis-je obtenir l'ancien comportement de 4 sous-parcelles côte à côte dans une figure unique avec laquelle je peux interagir?
Changez le backend en automatique:
Outils> Préférences> Console IPython> Graphiques> Arrière-plan graphique> Arrière-plan: automatique
Puis fermez et ouvrez Spyder.
Vous pouvez rapidement contrôler cela en tapant commandes magiques intégrées dans la console IPython de Spyder, que je trouve plus rapide que de les sélectionner dans le menu Préférences. Les modifications prennent effet immédiatement, sans qu'il soit nécessaire de redémarrer Spyder ou le noyau.
Pour basculer vers des tracés "automatiques" (c'est-à-dire interactifs), tapez:
%matplotlib auto
alors si vous voulez revenir à "inline", tapez ceci:
%matplotlib inline
(Remarque: ces commandes ne fonctionnent pas dans les consoles non IPython)
Voir plus de fond sur ce sujet: But de "% matplotlib inline"
Comme indiqué dans les commentaires, le problème réside dans votre script. En fait, il y a 2 problèmes:
None
quelque part. Peut-être en raison de la defaultdict?show()
après chaque sous-parcelle. show()
devrait être appelé une fois à la fin de votre script. L'alternative consiste à utiliser le mode interactif, recherchez ion
dans la documentation de matplotlib.