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()
内可输入的参数为:
- None: 目前的figure
- Figure: 给定的Figure实例
- int: 一个 figure数
- str: 一个 figure名字
- ‘all’: 全部 figures
另外,有时候也会因为没有关闭上一个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()
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。