首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matplotlib (pyplot) savefig输出空白图像

Matplotlib (pyplot) savefig输出空白图像
EN

Stack Overflow用户
提问于 2012-01-26 08:30:33
回答 5查看 265.2K关注 0票数 272

我正在尝试保存使用matplotlib创建的绘图;但是,图像保存为空白。

下面是我的代码:

代码语言:javascript
运行
复制
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)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-26 09:05:29

首先,当使用T0 is not None时会发生什么?我会对此进行测试,然后调整传递给plt.subplot()的值;可能会尝试值131、132和133,或者使用依赖于T0是否存在的值。

其次,在调用plt.show()之后,会创建一个新的图形。要处理此问题,您可以

在调用plt.show()

  • Save figure之前先调用plt.savefig('tessstttyyy.png', dpi=100),然后通过调用plt.gcf()获取当前图形,然后可以随时对此Figure对象调用savefig()

例如:

代码语言:javascript
运行
复制
fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)

在您的代码中,'tesssttyyy.png‘是空白的,因为它正在保存新的图形,而没有向其中绘制任何内容。

票数 404
EN

Stack Overflow用户

发布于 2017-11-17 11:57:17

plt.savefig()之后应该有plt.show()

说明:plt.show()清除了整个事件,所以之后的任何事情都会发生在一个新的空数字上

票数 183
EN

Stack Overflow用户

发布于 2019-08-08 00:04:39

更改functions fixed for me的顺序:

保存并显示plot

  • then plot

如下所示:

代码语言:javascript
运行
复制
plt.savefig('heatmap.png')

plt.show()
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9012487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档