Matplotlib(pyplot)savefig输出空白图像

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (295)

我试图保存使用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?我会测试一下,然后我会调整我传给的值plt.subplot(); 也许尝试值131,132和133,或取决于是否T0存在的值。

其次,在plt.show()被调用之后,创建一个新的数字。为了解决这个问题,你可以

  1. 打电话plt.savefig('tessstttyyy.png', dpi=100)之前打电话plt.show()
  2. show()通过调用plt.gcf()“获取当前图形”来保存前面的图形,然后可以随时调用savefig()Figure对象。

例如:

fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)

在你的代码中,'tesssttyyy.png'是空白的,因为它保存了没有绘制任何东西的新图。

用户回答回答于

所属标签

可能回答问题的人

  • gulu丶咕噜

    0 粉丝1 提问4 回答
  • 找虫虫

    6 粉丝0 提问3 回答
  • 朝夕熊博客

    1 粉丝2 提问3 回答
  • 女淘日记

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝1 提问3 回答

扫码关注云+社区

领取腾讯云代金券