92 votes

empêcher le tracé de s'afficher dans le notebook de Jupyter

Comment puis-je empêcher l'affichage d'un graphique spécifique dans le Jupyter notebook ? J'ai plusieurs graphiques dans un notebook mais je veux qu'un sous-ensemble d'entre eux soit sauvegardé dans un fichier et ne soit pas affiché sur le notebook car cela ralentit considérablement.

Un exemple minimal de fonctionnement d'un carnet Jupyter est le suivant :

%matplotlib inline 
from numpy.random import randn
from matplotlib.pyplot import plot, figure
a=randn(3)
b=randn(3)
for i in range(10):
    fig=figure()
    plot(b)
    fname='s%03d.png'%i
    fig.savefig(fname)
    if(i%5==0):
        figure()
        plot(a)

Comme vous pouvez le voir, j'ai deux types de tracés, a et b. Je veux que les tracés a soient tracés et affichés et je ne veux pas que les tracés b soient affichés, je veux juste qu'ils soient enregistrés dans un fichier. J'espère que cela accélérera un peu les choses et ne polluera pas mon carnet de notes avec des chiffres que je n'ai pas besoin de voir.

Merci pour votre temps

120voto

Greg Points 3333

Il suffit peut-être de dégager l'axe, par exemple :

fig= plt.figure()
plt.plot(range(10))
fig.savefig("save_file_name.pdf")
plt.close()

ne tracera pas la sortie dans inline mode. Je n'arrive pas à savoir si cela efface vraiment les données.

45voto

Dr.PP Points 581

J'ai pu empêcher l'affichage de mes chiffres en désactivant le mode interactif à l'aide de la fonction

plt.ioff()

39voto

Pour empêcher toute sortie d'une cellule de notebook jupyter, vous pouvez commencer la cellule avec

%%capture

Cela peut être utile dans les cas où toutes les autres méthodes présentées ici échouent.

16voto

À partir d'IPython 6.0, il existe une autre option pour désactiver la sortie en ligne (temporairement ou de manière persistante). Ceci a été introduit dans cette demande de retrait .

Vous devez utiliser le backend "agg" pour ne pas afficher de sortie en ligne.

%matplotlib agg

Il semble cependant que si vous avez d'abord activé le backend en ligne, cette opération doit être appelée deux fois pour prendre effet.

%matplotlib agg
%matplotlib agg

Voici à quoi cela ressemblerait en action

9voto

Deepak Joshi Points 329

Je suis un débutant, mais désactivez le mode en ligne lorsque vous ne voulez pas voir le résultat dans votre carnet de notes :

%matplotlib auto

ou :

%matplotlib

pour l'utiliser à nouveau :

%matplotlib inline

Une meilleure solution serait d'utiliser :

plt.ioff()

qui dit que le mode en ligne est désactivé.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X