2016-03-28 15 views
7

Uso i taccuini IPython con matplotlib.pyplot e spesso creo un grafico che richiede un blocco di codice abbastanza grande da generare. Vorrei quindi salvare l'oggetto e utilizzare quella stessa figura/coppia di assi da incorporare in un altro complotto in seguito.Come visualizzare la stessa cifra matplotlib più volte in un singolo blocco note IPython?

Ad esempio, supponiamo di avere alcune coppie di dati x-y per un grafico a dispersione. Mi piacerebbe mostrare i punti e poi parecchie celle più tardi - potenzialmente con altre chiamate a pyplot per creare altre figure non correlate - Vorrei mostrare di nuovo quella figura in modo che potessi tracciarla con una linea di regressione o qualche altra grafica.

Nella foto che ho allegato di seguito, ho un breve taccuino; Voglio che la cifra dalla cella n. 2 sia disegnata nella cella n. 3 senza chiamare nuovamente pyplot.scatter.

In sostanza, voglio mostrare di nuovo la figura senza ripetere tutto il codice. Quali sono le mie opzioni per fare questo? Non sono stato in grado di farlo con le chiamate a show() o draw() o impostando l'oggetto figure corrente nella cella come oggetto figura salvata. Qualsiasi consiglio è benvenuto. Grazie!

P.S. So che se riutilizzerò la figura e la trama su di essa, l'oggetto cambierà e quindi lo stato dell'oggetto fig potrebbe non corrispondere alla trama disegnata in una precedente cella IPython. Va bene per il mio lavoro.

Example IPython notebook

risposta

10

Basta chiamare myFigure in una cella dopo myFigure è stato assegnato in cella prima.

Per esempio nella cella 1:

In [1]: 
myFigure, myAx = plt.subplots() 
myAx.plot([1,2,3]) 

Nella cella dopo che:

In [2]: 
myFigure 

Questo mostrerà myFigure

+0

Grande, grazie! –

+1

perché myFigure.show() non funziona? – amit

Problemi correlati