una pyplot guardar grafica como python image matplotlib figure

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

  1. Llame a plt.savefig(''tessstttyyy.png'', dpi=100) antes de llamar a plt.show()

  2. Guarde la figura antes de show() llamando a plt.gcf() para "obtener la cifra actual", luego puede llamar a savefig() en este objeto de Figure 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()