我试图保存我使用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)
tessstttyy.png为空白(也尝试使用.jpg)
5条答案
按热度按时间vcudknz31#
首先,当
T0 is not None
时会发生什么?我会测试它,然后我会调整我传递给plt.subplot()
的值;可以尝试值131、132和133,或者取决于T0
是否存在的值。其次,在调用
plt.show()
之后,创建一个新的图形。要处理这个问题,你可以1.在调用
plt.show()
之前调用plt.savefig('tessstttyyy.png', dpi=100)
1.通过调用
plt.gcf()
来保存show()
之前的图形“获取当前图形”,然后您可以随时在这个Figure
对象上调用savefig()
。例如:
在您的代码中,'tesssttyyy.png'为空,因为它正在保存新图形,而没有绘制任何图形。
uhry853o2#
plt.show()
应在plt.savefig()
之后说明:
plt.show()
清除了整个事件,因此之后的任何操作都将发生在一个新的空图形上zf2sa74q3#
改变函数的顺序为我解决了问题:
*先保存情节
*然后显示情节
如下:
kxe2p93d4#
在show()之前调用savefig对我很有用。
k7fdbhmy5#
让我给予一个更详细示例: