Uso il notebook iPython molto insieme a matplotlib e mentre ci sono molti casi in cui sono contento che visualizza automaticamente le immagini quando chiamo imshow() ci sono momenti in cui vorrei evitare questo comportamento.Notebook iPython: come impedire l'output dell'immagine su imshow()?
In particolare, eseguo il ciclo su un array molto grande e genera una figura in matplotlib per ogni elemento che deve essere salvato su disco. Come parte della creazione di questa figura, devo chiamare imshow() per disegnare un'immagine esistente (nel mio caso lo screenshot di una mappa) sull'asse per poi disegnare altro materiale in più. Ogni volta che chiamo imshow come parte del processo, la figura finale viene visualizzata in linea nel notebook iPython, come posso impedirlo?
Il mio codice simile a questa:
import matplotlib as plt
fig = plt.pyplot.figure(figsize=(20,20))
im2 = plt.pyplot.imread('/some/dir/fancy-map.png')
# Magic to calculate points, x_min etc.
fig.clf()
ax = fig.gca(xlim=(x_min, x_max), ylim=(y_min, y_max))
ax.imshow(im2, extent=(4, 4.5746, 42.5448, 43.3791), aspect=1.5)
raster = ax.imshow(points, vmin = 0, vmax=maxval, extent=(x_min, x_max, y_min, y_max), aspect=1.5, origin='lower')
fig.colorbar(raster)
ax.set_title('coordinates plot')
fig.savefig("fancy-annotated-map.png", bbox_inches=0)
Perfetto, grazie! Finito per usare il 'pylab.ioff()' per ora ma sicuramente cercherò di farne una funzione magica iPython – Robin