Estoy tratando de guardar tramas que hago usando matplotlib; sin embargo, las imágenes se guardan en blanco.
Aquí está mi código:
plt.subplot(121)
plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.subplot(122)
y = copy.deepcopy(tumorStack)
y = np.ma.masked_where(y == 0, y)
plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.imshow(y, cmap=mpl.cm.jet_r, interpolation='nearest')
if T0 is not None:
plt.subplot(123)
plt.imshow(T0, cmap=mpl.cm.bone)
#plt.subplot(124)
#Autozoom
#else:
#plt.subplot(124)
#Autozoom
plt.show()
plt.draw()
plt.savefig('tessstttyyy.png', dpi=100)
Y tessstttyyy.png está en blanco (también probado con .jpg)
fuente
jupyter
cuadernos con%matplotlib inline
habilitado: lasavefig
llamada debe estar en la misma celda que el método de creación del diagrama.plt.show()
genera una nueva imagen. De hecho, esto resolvió el problema.plt.show()
debería venir despuésplt.savefig()
Explicación:
plt.show()
borra todo el asunto, por lo que cualquier cosa posterior sucederá en una nueva figura vacíafuente
plt.show()
borra todo, por lo que cualquier cosa posterior sucederá en una nueva figura vacía.cambiar el orden de las funciones me solucionó el problema :
de la siguiente manera:
fuente
Llamar a savefig antes de show () funcionó para mí.
fuente
déjenme dar un ejemplo más detallado:
fuente