python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Matplotlib之plt.savefig()保存多张图片有重叠

Matplotlib之解决plt.savefig()保存多张图片有重叠的问题

作者:Mic28

这篇文章主要介绍了Matplotlib之解决plt.savefig()保存多张图片有重叠的问题,具有很好的参考价值,希望对大家有所帮助,

Python Matplotlib 解决plt.savefig()保存多张图片有重叠问题

问题描述

在多次调用plt.savefig()时,出现了保存的图片有上一个数据出现并重叠的现象。

如下图:

在这里插入图片描述

部分代码:

import matplotlib.pyplot as plt
def ch_graph(num_clusters, ch_score, filepath, method, module):
    # Plot ch graph
    plt.plot(num_clusters, ch_score, 'bx-')
    plt.xlabel('Number of cluster')
    plt.ylabel('Calinski-Harabasz Score')
    plt.title('Calinski-Harabasz Score against Number of Cluster')
    plt.grid(True)
	filename = 'ch_graph_one.png'
    folder = 'Picture/'
    ch_filepath = filepath + '/' + folder + filename
    plt.savefig(ch_filepath)
def elbow_graph(num_clusters, Sum_of_squared_distances, filepath, method, module):
    # Plot ch graph
    plt.plot(num_clusters, Sum_of_squared_distances, 'bx-')
    plt.xlabel('Number of cluster')
    plt.ylabel('Sum of squared dist')
    plt.title('Sum of squared dist against Number of Cluster')
    plt.grid(True)
    filename = 'elbow_graph_one.png'
    folder = 'Picture/'
    elbow_filepath = filepath + '/' + folder + filename
    plt.savefig(elbow_filepath)

解决方法

plt.savefig() 的下一行加上 plt.close() 就可以了。

对于使用 seaborn 来绘制的图片,也同样使用 plt.close()

plt.close() 内可输入的参数为:

另外,有时候也会因为没有关闭上一个canvas, 导致出现以下问题:

fig.canvas.draw_idle()   # need this if 'transparent=True' to reset colors

参考链接:pyplot.close()

matplotlib—plt.savefig存储高清图片

1.matplotlib模块中pyplot的引入

import matplotlib.pyplot as plt

2.保存与显示

在代码的顺序中,保存需要在显示的前面

#保存图片
#bbox_inches='tight'表示指定将图表多余的空白区域裁减掉
plt.savefig('test.png', bbox_inches='tight')
#显示图片
plt.show()

如果plt.show() 在plt.savefig()前,就会导致保存图片是空白的情况。

3.保存高清图片

将保存的图片后缀进行修改,改为.svg即可。

plt.savefig('test.svg', bbox_inches='tight')
#显示图片
plt.show()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文