matplotlib python inline on/off

si je démarre un bloc-notes ipython avec matplotlib inlined, y a-t-il un moyen de tracer par la suite un chiffre de sorte qu'il apparaît dans le "standard", non-inlined, way, sans avoir à recharger le bloc-notes sans la commande inline? J'aimerais pouvoir avoir quelques chiffres dans le carnet, mais d'autres dans le mode interactif traditionnel, où je peux zoomer et balancer.

34
demandé sur user2379888 2015-06-17 00:35:56

4 réponses

vous pouvez changer le backend de matplotlib par %matplotlib <backend> . Pour revenir au backend par défaut de votre système, utilisez %matplotlib auto ou tout simplement %matplotlib .

il y a de nombreux backends disponibles tels que gtk , qt , notebook , etc. Personnellement, je recommande fortement le notebook (A. K. A. nbagg ) backend. Il est similaire à inline mais interactif, permettant le zoom/panoramique à partir de L'intérieur de Jupyter.

pour plus d'informations essayer: ?%matplotlib à l'intérieur D'un IPython / Jupyter ou documentation en ligne D'IPython

26
répondu Gustavo Bezerra 2016-10-25 01:37:11

plt.ioff() et plt.ion() fonctionne comme un charme dans mon Jupyter portable avec la notebook comme backend (en supposant que l'habituel import matplotlib.pyplot as plt ).

6
répondu mattmilten 2017-09-27 10:45:06

Cela dépend de la configuration exacte de votre matplotlib, mais vous pouvez basculer entre en ligne et l'un des "osx', 'qt4', 'qt5', 'gtk3', 'wx', 'qt', 'gtk', 'tk' (certains sont des alias des autres). suffit d'utiliser %matplotlib <the one you want> pour passer. Selon les conditions, vous pourriez n'avoir accès qu'à l'un d'eux.

5
répondu Matt 2015-06-17 07:26:01

une autre possibilité est d'utiliser matplotlib.pyplot.close(fig) . Cela fonctionne pour moi même si %matplotlib auto soulève une terrible erreur wx (liée aux versions des fichiers de développement GTK que j'ai installés dans LD_LIBRARY_PATH ).

bien que cela puisse causer des problèmes si vous faites quelque chose comme faire une vidéo (ou peut-être pas; je n'ai pas essayé), cela a fonctionné pour moi lors de l'assemblage d'images dans une table en utilisant IPython.display.HTML par cette réponse .

2
répondu tsbertalan 2017-10-18 03:17:38