8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Savefig 输出空白图像

RARE Kpop Manifesto 2月前

79 0

我正在尝试保存使用 matplotlib 制作的图表;但是,保存的图像是空白的。这是我的代码:plt.subplot(121)plt.imshow(dataStack, cmap=mpl.cm.bone)plt.subplot(122)y = copy.deepc...

我正在尝试保存使用 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)

帖子版权声明 1、本帖标题:Savefig 输出空白图像
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由RARE Kpop Manifesto在本站《matplotlib》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 首先,当 时会发生什么 T0 is not None ?我会测试一下,然后调整传递给 的值 plt.subplot() ;也许尝试值 131、132 和 133,或者取决于是否 T0 存在的值。

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

    1. p2

    2. p3

    例如:

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

    在您的代码中,“tesssttyyy.png”是空白的,因为它正在保存新图形,但其中尚未绘制任何内容。

  • 在启用了 %matplotlib inline 的 jupyter 笔记本中会出现一种特殊情况:savefig 调用必须与绘图创建方法位于同一单元格中。

  • 有趣的是看到 plt.show() 生成了一个新图像。事实上,这解决了这个问题。

  • 有趣的是,如果你在 spyder 等终端中逐个输入 plt.plot、plt.savefig、plt.show,它不会显示图。将所有命令放在脚本中并一次性运行。它会显示图。

  • 我尝试了这篇文章中的所有答案,但仍然没有任何效果。它运行没有错误,并且创建文件也很好

  • plt.show() 应该在之后 plt.savefig()

    解释: plt.show() 清除整个事物,因此之后的任何事情都会发生在一个新的空白图形上

  • disa 2月前 0 只看Ta
    引用 8

    改变函数的顺序 解决了这个问题

    • 首先 保存 情节
    • 然后 显示 情节

    如下:

    plt.savefig('heatmap.png')
    
    plt.show()
    
  • 在 show() 之前调用 savefig 对我有用。

    fig ,ax = plt.subplots(figsize = (4,4))
    sns.barplot(x='sex', y='tip', color='g', ax=ax,data=tips)
    sns.barplot(x='sex', y='tip', color='b', ax=ax,data=tips)
    ax.legend(['Male','Female'], facecolor='w')
    
    plt.savefig('figure.png')
    plt.show()
    
  • 让我举一个更详细的例子:

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    def draw_result(lst_iter, lst_loss, lst_acc, title):
        plt.plot(lst_iter, lst_loss, '-b', label='loss')
        plt.plot(lst_iter, lst_acc, '-r', label='accuracy')
    
        plt.xlabel("n iteration")
        plt.legend(loc='upper left')
        plt.title(title)
        plt.savefig(title+".png")  # should before plt.show method
    
        plt.show()
    
    
    def test_draw():
        lst_iter = range(100)
        lst_loss = [0.01 * i + 0.01 * i ** 2 for i in xrange(100)]
        # lst_loss = np.random.randn(1, 100).reshape((100, ))
        lst_acc = [0.01 * i - 0.01 * i ** 2 for i in xrange(100)]
        # lst_acc = np.random.randn(1, 100).reshape((100, ))
        draw_result(lst_iter, lst_loss, lst_acc, "sgd_method")
    
    
    if __name__ == '__main__':
        test_draw()
    

    enter image description here

返回
作者最近主题: