在处理数据的过程中,我们需要读取excel表格下多个子表特定列的数据并绘制直方分布图,可以通过以下代码实现
import pandas as pd
# 读取Excel文件
# 获取某一列数据
import time
start=time.time()
import matplotlib.pyplot as plt
import pandas as pd
##绘制堆叠直方图
##获取数据源,"C:/Users/24561/Desktop/111.csv代表数据所在路径
#读取特定sheet表的特定列的数据
data = pd.read_excel('your excel name.xlsx', sheet_name='your sheet name')
data = data['替换为你需要读取的那列数据的表头']
data1 = pd.read_excel('your excel name.xlsx', sheet_name='your sheet name')
data1 = data1['替换为你需要读取的那列数据的表头']
##标题
plt.title("title")
##xy坐标名称
plt.xlabel("x name")
plt.ylabel("y nmae")
##绘图调用的函数,以及图形的样式设置,大家可以改变参数自己调,label = ['图例一']图例的名称,histtype="step"表示可以堆叠在一起
# 直方图的类型可为'bar',表示绘制普通的柱状图,step为柱状形颜色不填充
plt.hist(data1,
bins=15,
color='white',
edgecolor='b',
histtype="step",
range=(0,15),
label = ['FSRQ'])
plt.hist(data,
bins=15,
color='white',
edgecolor='r',
histtype="step",
range=(0,15),
label = ['LBL'])
plt.xscale('symlog') #对x轴取对数
# plt.yscale('symlog') #对x轴取对数
plt.tick_params(top='in', right='in', which='both') #四周有刻度
plt.rcParams['xtick.direction'] = 'in' #将x周的刻度线方向设置向内
plt.rcParams['ytick.direction'] = 'in' #将Y周的刻度线方向设置向内
#添加自己所需要的线线型
plt.axvline(1,ymin=0,ymax=1,c='g',ls='-.') #添加竖直的线
# plt.axhline(2,xmin=0.3,xmax=0.6,c='g',ls='--') #添加横项的线
plt.text(1.5, 120, 'CD=1') # 添加注释
##绘制图例
plt.legend()
##输出图像
plt.show()
#####计算运行的时间
end=time.time()
print('程序运行时间:{}s'.format(end-start))