为什么你用matplotlib savefig保存下来的图像是一个空白图片?

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么你用matplotlib savefig保存下来的图像是一个空白图片?相关的知识,希望对你有一定的参考价值。

为什么你用matplotlib savefig保存下来的图像是一个空白图片?

 

plt.savefig( 'c.png')

亦或者:

plt.figure()

fig.savefig( 'plot.png',facecolor='white',transparent=False)

生成了一张空白图,我要它干什么,,,,,,

See the source image

 

为什么会发生如上的情况以及本质原因:

如果在 plt.show() 之后后调用了 plt.savefig() 函数;

而在 plt.show() 之后实际上已经创建了一个新的空白的图片;

此时继续 plt.savefig() 就会保存这个新生成的空白图片;

 

以校准曲线绘制为例:

fraction_of_positives, mean_predicted_value = \\
    calibration_curve(y_test, pipeline_optimizer.predict_proba(X_test)[:,1], n_bins = 5
                      , strategy = 'quantile'
                     )

plt.plot(fraction_of_positives, mean_predicted_value, "rs-", label = 'test data',color = 'blue')
plt.plot([0, 1], [0, 1], "k:", label="Perfectly calibrated")
plt.xlabel("Mean predicted value")
plt.ylabel("Fraction of positives")
plt.title("Calibration Curve")
plt.legend(loc="lower right")
plt.savefig(str(timestamp) + 'g.png')
#plt.show()

 

参考:matplotlib

参考:Matplotlib解决使用 plt.savefig 保存图片时一片空白

 

以上是关于为什么你用matplotlib savefig保存下来的图像是一个空白图片?的主要内容,如果未能解决你的问题,请参考以下文章