python读取excel表格下多个子表特定列的数据并绘制直方分布图

 

在处理数据的过程中,我们需要读取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))

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,需要安装以下库:pandas、matplotlib、seaborn、numpy 然后,可以按照以下步骤进行操作: 1. 导入所需的库 ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np ``` 2. 读取Excel文件中的数据 ```python df = pd.read_excel('data.xlsx', usecols=['1', '2', '3']) ``` 3. 绘制直方图 ```python plt.hist(df['1'], bins=20, density=True, alpha=0.5, color='blue') plt.hist(df['2'], bins=20, density=True, alpha=0.5, color='green') plt.hist(df['3'], bins=20, density=True, alpha=0.5, color='red') plt.xlabel('数据') plt.ylabel('频率') plt.title('正态分布直方图') plt.show() ``` 4. 绘制核密度图 ```python sns.kdeplot(df['1'], shade=True, color='blue') sns.kdeplot(df['2'], shade=True, color='green') sns.kdeplot(df['3'], shade=True, color='red') plt.xlabel('数据') plt.ylabel('密度') plt.title('核密度图') plt.show() ``` 完整代码如下: ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np df = pd.read_excel('data.xlsx', usecols=['1', '2', '3']) plt.hist(df['1'], bins=20, density=True, alpha=0.5, color='blue') plt.hist(df['2'], bins=20, density=True, alpha=0.5, color='green') plt.hist(df['3'], bins=20, density=True, alpha=0.5, color='red') plt.xlabel('数据') plt.ylabel('频率') plt.title('正态分布直方图') plt.show() sns.kdeplot(df['1'], shade=True, color='blue') sns.kdeplot(df['2'], shade=True, color='green') sns.kdeplot(df['3'], shade=True, color='red') plt.xlabel('数据') plt.ylabel('密度') plt.title('核密度图') plt.show() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值