python - guardar - Matplotlib(pyplot) savefig genera una imagen en blanco
matplotlib pyplot save image (2)
Estoy tratando de salvar las 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 se intentó con .jpg)
Primero, ¿qué sucede cuando T0 is not None
? Yo probaría eso, luego ajustaría los valores que paso a plt.subplot()
; tal vez intente con los valores 131, 132 y 133, o valores que dependen de si T0
existe o no.
En segundo lugar, después de plt.show()
, se crea una nueva figura. Para lidiar con esto, puedes
Llame a
plt.savefig(''tessstttyyy.png'', dpi=100)
antes de llamar aplt.show()
Guarde la figura antes de
show()
llamando aplt.gcf()
para "obtener la cifra actual", luego puede llamar asavefig()
en este objeto deFigure
en cualquier momento.
Por ejemplo:
fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig(''tessstttyyy.png'', dpi=100)
En su código, ''tesssttyyy.png'' está en blanco porque guarda la nueva figura, a la que no se ha trazado nada.
plt.show()
debería venir después de plt.savefig()