Python如何对多文件数据绘制直方图可视化
在进行数据分析可视化的时候,我们经常会将很多文件分别打开并分别作图,如果只是5个以下,那么使用origin绘制也可以,但是如果需要打开8个文件,每个文件绘制5张图,那么合起来将要绘制40张图,这时,我们需要考虑利用电脑来自动完成;
解决问题的思路:
1)将待处理数据的放在同一保存路径下;
2)将打开文件和绘图文件分别包装成函数;
3)利用遍历实现绘图自动化
先展示完整代码:
#模块引入
##########################################
#@Mr Pydaty
#Function:Draw hist
#Time:2020-03-17
#########################################
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
打开文件函数定义
def open(file_name):
file_path='c:\\Users\\dell\\Desktop\\my_project\\'+file_name+'.csv'
df=pd.read_csv(file_path)
return df
绘图函数定义
def hist_plt(column,type):
#多重赋值,创建画布和轴
hist,ax=plt.subplots()
#对打开文件的列表中的特定的列数据进行直方图绘制
ax=sns.distplot(df[column])
#设置图的标题
ax.set_title('Histogram of '+column+' by '+type)
#设置图的x轴说明
ax.set_xlabel(column)
#设置图y轴的说明
ax.set_ylabel('Frequency')
#保存图片,一定是先保存
plt.savefig('c:\\Users\\dell\\Desktop\\my_project\\'+column+'_'+type+'.png')
#图片显示
plt.draw()
#图片停顿时间,秒为单位
plt.pause(2)
#关闭图片,如果不关闭,则需要手动关闭,才能使遍历继续进行
plt.close()
if __name__ == '__main__':
for i in ['A1','A2','A3','B1','B2','B3','B4','B5']:
df=open(i)
hist_plt('a',i)
hist_plt('b',i)
hist_plt('c',i)
hist_plt('d',i)
hist_plt('e',i)
#'a','b'....是打开列表df的列名
这样就可以在较短的时间绘制40张图片,谢谢阅读