Si je démarre un bloc-notes ipython avec matplotlib inline, existe-t-il un moyen de tracer ultérieurement une figure de sorte qu'elle s'affiche de manière "standard", sans ligne, sans devoir recharger le bloc-notes sans la commande inline? J'aimerais pouvoir insérer des chiffres dans le cahier, mais d'autres en mode interactif traditionnel, où je peux effectuer un zoom et un panoramique.
Vous pouvez changer le backend de matplotlib de %matplotlib <backend>
. Pour revenir au système par défaut de votre système, utilisez %matplotlib auto
ou tout simplement %matplotlib
.
Il existe de nombreux backends disponibles tels que gtk
, qt
, notebook
, etc. Personnellement, je recommande vivement le notebook
(aka nbagg
) backend. Il est similaire à inline
mais il est interactif et permet d’agrandir ou de zoomer depuis Jupyter.
Pour plus d'informations, essayez: ?%matplotlib
dans un IPython/Jupyter ou documentation en ligne d'IPython
plt.ioff()
et plt.ion()
fonctionne comme un charme dans mon cahier Jupyter avec le notebook
en tant que backend (en supposant que import matplotlib.pyplot as plt
).
Cela dépend de la configuration exacte de votre matplotlib, mais vous pouvez basculer entre inline et l'un de 'osx', 'qt4', 'qt5', 'gtk3', 'wx', 'qt', 'gtk', 'tk' (certains sont des alias d'autres). utilisez simplement %matplotlib <the one you want>
commuter. Selon les conditions, vous n’avez accès qu’à l’un d’eux.
Une autre possibilité consiste à utiliser matplotlib.pyplot.close(fig)
. Cela fonctionne pour moi même si %matplotlib auto
soulève une horrible 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 poser des problèmes si vous réalisez quelque chose comme une vidéo (ou non; je n'ai pas essayé), cela a fonctionné pour moi lors de l'assemblage d'images dans un tableau à l'aide de IPython.display.HTML
par cette réponse .