Matplotlib(pyplot)savefig输出空白图像
我试图保存使用matplotlib制作的图表; 但是,图像保存为空白。
这是我的代码:
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)
而tessstttyyy.png是空白的(也试图用.jpg)
首先,当T0 is not None
时会发生什么? 我会testing,然后我会调整我传递给plt.subplot()
; 也许尝试值131,132和133,或取决于T0
是否存在的值。
其次,调用plt.show()
之后,会创build一个新graphics。 为了解决这个问题,你可以
-
在调用
plt.savefig('tessstttyyy.png', dpi=100)
之前调用plt.savefig('tessstttyyy.png', dpi=100)
plt.show()
-
在
show()
之前通过调用plt.gcf()
获取当前graphics来保存graphics,然后可以随时调用此Figure
对象上的savefig()
。
例如:
fig1 = plt.gcf() plt.show() plt.draw() fig1.savefig('tessstttyyy.png', dpi=100)
在你的代码中,“tesssttyyy.png”是空白的,因为它保存了没有任何内容的新图。
plt.show()
应该在plt.savefig()
之后plt.savefig()