web-dev-qa-db-fra.com

empêcher l'intrigue de s'afficher dans le cahier jupyter

Comment puis-je empêcher qu'un tracé spécifique soit affiché dans le bloc-notes Jupyter? J'ai plusieurs tracés dans un cahier, mais je veux qu'un sous-ensemble d'entre eux soit enregistré dans un fichier et non affiché sur le cahier car cela ralentit considérablement.

Un exemple de travail minimal pour un ordinateur portable Jupyter est:

%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 parcelles, a et b. Je veux que les 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 ordinateur portable avec des chiffres que je n'ai pas besoin de voir.

Merci pour votre temps

48
gota

Peut-être juste effacer l'axe, par exemple:

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

ne tracera pas la sortie en mode inline. Je ne peux pas savoir si cela efface vraiment les données.

53
Greg

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

plt.ioff ()

26
Dr.PP

Pour empêcher toute sortie d'une cellule de cahier jupyter, vous pouvez démarrer la cellule avec

%%capture

Cela peut être utile si toutes les autres méthodes présentées ici échouent.

20

Je suis un débutant cependant, hors du mode en ligne lorsque vous ne voulez pas voir la sortie dans votre ordinateur portable par:

%matplotlib auto

ou:

%matplotlib

pour le réutiliser:

%matplotlib inline

une meilleure solution serait d’utiliser:

plt.ioff()

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

j'espère que ça aide.

5
Deepak Joshi

À 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 pull request .

Vous utiliseriez le backend "agg" pour ne montrer aucune sortie en ligne.

%matplotlib agg

Il semble cependant que si vous aviez activé le backend en ligne en premier, cela doit être appelé deux fois pour prendre effet.

%matplotlib agg
%matplotlib agg

Voici à quoi cela ressemblerait en action