Python获取excel的数据并绘制箱型图和直方图的方法实例

 更新时间:2023年12月12日 09:43:03   作者:db_gjq_2038  
这篇文章主要给大家介绍了关于Python获取excel的数据并绘制箱型图和直方图的相关资料,好的图表能帮助我们深化数据的记忆点,文中通过图文以及代码示例将实现的方法介绍的非常详细,需要的朋友可以参考下

根据箱型图、直方图的代码和数据的条件查询方法,画出航空公司男性和女性用户的年龄分布箱型图直方图

图形简介

1. 箱线图

箱线图(Box-plot)又称为盒式图或箱型图,箱型图是用来表示一组数据的分布(统计不同取值可能出现的次数)。

25%分位数(下四分位数):序列中有25%的数据小于这个数

中位数(50%分位数):序列中有50%的数据小于这个数

75%分位数(上四分位数):序列中有75%的数据小于这个数

最大值:序列100%的数据小于这个数

最小值:序列没有数据小于这个数

2.直方图

直方图(Bar),形状类似柱状图却有着与柱状图完全不同的含义。直方图牵涉统计学概念,首先要对数据进行分组,然后统计每个分组内数据元的数量。在平面直角坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,这样的统计图称为频数分布直方图。

频数分布直方图需要经过频数乘以组距的计算过程才能得出每个分组的数量,同一个直方图的组距是一个固定不变的值,所以如果直接用纵轴表示数量,每个矩形的高代表对应的数据元数量,既能保持分布状态不变,又能直观地看出每个分组的数量,如下图所示

引入模块

首先我们的目的是获取excel文件并作图,那么就要引入相关的模块

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Boxplot
from pyecharts.charts import Bar

若没有pandas和pyecharts这两个模块!

就需要在cmd命令窗口或Anaconda Prompt窗口输入以下命令:

pip install pandas
pip install pyecharts

---------------------------------------------------------------------------------------------------------------------------------

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。

pyecharts是一款将python与echarts结合的强大的数据可视化工具。Echarts 是百度开源的一个数据可视化 JS 库, Echarts可以生成非常棒的可视化交互图,pyecharts的开发让在python平台上也可以直接使用数据生成图。

获取数据

利用pandas中的方法获取指定文件指定工作表中的全部数据,其数据是一个列表形式,注意这里’航空公司数据-剔除空年龄.xlsx‘文件与当前写的xx.ipynb文件需要在同一文件夹内才能获取到数据,因为我使用的是相对路径,也可以使用绝对路径来获取‘航空公司数据-剔除空年龄.xlsx’文件。

下面是用相对路径来获取。

data = pd.read_excel(r'航空公司数据-剔除空年龄.xlsx')
data

 或者用绝对路径来获取。

data = pd.read_excel(r'D:\新建文件夹 (2)\航空公司数据-剔除空年龄.xlsx')
data

处理数据

根据性别来分开查询数据

表格对象中实现条件查询的方法:

data1 = data['性别']=="男"
data2 = data['性别']=="女"
data11=data.loc[data1,:]
data11
data22=data.loc[data2,:]
data22

做完以上步骤再把年龄提取出来

y1 = [data11['年龄'].tolist()]
y2 = [data22['年龄'].tolist()]

画图

箱型图

画图前先把年龄的最小值,下四分位数,中位数,上四分位数,最大值提取出来

男性年龄

c = Boxplot()
c.prepare_data(y1)

女性年龄 

c = Boxplot()
c.prepare_data(y2)

完成以上步骤开始画图

c = Boxplot() # 先创建出图形对象
c.add_xaxis([""])  # 必须输入,但多数时候不需要
c.add_yaxis("男", 
            c.prepare_data(y1), # 数据经过prepare_data方法处理得到[最小值,下四分位数,中位数,上四分位数,最大值]
            itemstyle_opts = opts.ItemStyleOpts(color='skyblue',
                                                border_color='blue',
                                               )
           ) 
c.add_yaxis("女", 
            c.prepare_data(y2),
            itemstyle_opts = opts.ItemStyleOpts(color='#aa1010',
                                                border_color='black',
                                               )
           )
c.set_global_opts(title_opts=opts.TitleOpts(title="男女性年龄分布箱型图"),
                  yaxis_opts=opts.AxisOpts(
                        type_="value",
                        name="年龄",  # 单位
                        splitarea_opts=opts.SplitAreaOpts(
                            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
                        ),
                    ),      
                 )
 
c.render_notebook()

直方图

画图前先把每个年龄段有多少人提取出来

男性直方图

dist = data11['年龄'].value_counts().sort_index()
dist

x = [i for i in dist.index]
y = dist.tolist()
c = (
    Bar()
    .add_xaxis(x)
    .add_yaxis("男", y, 
               category_gap=0, # 设置柱子之间的间距为0
               color='#ff8080')
    .set_global_opts(title_opts=opts.TitleOpts(title="男性直方图"),
        xaxis_opts=opts.AxisOpts(
                        name="年龄",  # 单位
                    ),
        yaxis_opts=opts.AxisOpts(
                        type_="value",
                        name="人数",  # 单位
                        splitarea_opts=opts.SplitAreaOpts(
                            is_show=True,areastyle_opts=opts.AreaStyleOpts(opacity=1)
                        ),
                    ),
    ) 
)
c.render_notebook()

女性直方图

dict = data22['年龄'].value_counts().sort_index()
dict

x = [i for i in dict.index]
y = dict.tolist()
c = (
    Bar()
    .add_xaxis(x)
    .add_yaxis("女", y, 
               category_gap=0, # 设置柱子之间的间距为0
               color='#ff8080')
    .set_global_opts(title_opts=opts.TitleOpts(title="女性直方图"),
        xaxis_opts=opts.AxisOpts(
                        name="年龄",  # 单位
                    ),
        yaxis_opts=opts.AxisOpts(
                        type_="value",
                        name="人数",  # 单位
                        splitarea_opts=opts.SplitAreaOpts(
                            is_show=True,areastyle_opts=opts.AreaStyleOpts(opacity=1)
                        ),
                    ),
    ) 
)
c.render_notebook()

总结

到此这篇关于Python获取excel的数据并绘制箱型图和直方图的文章就介绍到这了,更多相关Python绘制箱型图和直方图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现元素等待代码实例

    Python实现元素等待代码实例

    这篇文章主要介绍了python实现元素等待代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 利用Python脚本实现ping百度和google的方法

    利用Python脚本实现ping百度和google的方法

    最近在做SEO的时候,为了让发的外链能够快速的收录,想到了利用ping的功能,google和百度都有相关的ping介绍,有兴趣的朋友可以去看看相关的知识。下面这篇文章主要介绍了利用Python脚本实现ping百度和google的方法,需要的朋友可以参考借鉴,一起来看看吧。
    2017-01-01
  • TensorFlow的自动求导原理分析

    TensorFlow的自动求导原理分析

    这篇文章主要介绍了TensorFlow的自动求导原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例

    Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例

    这篇文章主要介绍了Python 实现 3 种回归模型(Linear Regression,Lasso,Ridge)的示例,帮助大家更好的进行机器学习,感兴趣的朋友可以了解下
    2020-10-10
  • Python实现文件信息进行合并实例代码

    Python实现文件信息进行合并实例代码

    这篇文章主要介绍了Python实现文件信息进行合并实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python scikit-learn 做线性回归的示例代码

    Python scikit-learn 做线性回归的示例代码

    本篇文章主要介绍了Python scikit-learn 做线性回归的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Django模板标签{% for %}循环,获取制定条数据实例

    Django模板标签{% for %}循环,获取制定条数据实例

    这篇文章主要介绍了Django模板标签{% for %}循环,获取制定条数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • pyspark 随机森林的实现

    pyspark 随机森林的实现

    这篇文章主要介绍了pyspark 随机森林的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python实现甘特图绘制的示例详解

    Python实现甘特图绘制的示例详解

    相信在平常实际工作当中,需要对整体的项目做一个梳理,这时如果有一个网页应用能够对整体项目有一个可视化页面的展示,是不是会对你的实际工作有所帮助呢?今天小编就通过Python+Streamlit框架来绘制甘特图并制作可视化大屏,需要的可以参考一下
    2023-04-04
  • Python中对列表排序实例

    Python中对列表排序实例

    这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考下
    2015-01-01

最新评论