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-docx的用法解析

    Python中文档处理神器python-docx的用法解析

    Python中有一个python-docx的库,它允许创建、修改和操作Word文档,本文将详细介绍python-docx库的用法,包括如何创建文档、添加文本、格式化文本等,需要的可以参考下
    2023-11-11
  • 如何使用七牛Python SDK写一个同步脚本及使用教程

    如何使用七牛Python SDK写一个同步脚本及使用教程

    七牛云存储的 Python 语言版本 SDK(本文以下称 Python-SDK)是对七牛云存储API协议的一层封装,以提供一套对于 Python 开发者而言简单易用的开发工具本篇文章给大家介绍如何使用七牛Python SDK写一个同步脚本及使用及使用教程,需要的朋友可以参考下
    2015-08-08
  • Python实现的一个简单LRU cache

    Python实现的一个简单LRU cache

    这篇文章主要介绍了Python实现的一个简单LRU cache,本文根据实际需求总结而来,需要的朋友可以参考下
    2014-09-09
  • Python FtpLib模块应用操作详解

    Python FtpLib模块应用操作详解

    这篇文章主要介绍了Python FtpLib模块应用操作,结合实例形式详细分析了FtpLib模块的功能、配置、应用相关操作技巧与使用注意事项,需要的朋友可以参考下
    2019-12-12
  • Python 比较两个数组的元素的异同方法

    Python 比较两个数组的元素的异同方法

    下面小编就为大家带来一篇Python 比较两个数组的元素的异同方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Python Numpy学习之索引及切片的使用方法

    Python Numpy学习之索引及切片的使用方法

    数组中的元素可以通过索引以及切片的手段进行访问或者修改,和列表的切片操作一样。本文将详细为大家介绍一下Python中的科学计算库-Numpy的索引及切片的使用方法
    2022-01-01
  • Python利用pdfplumber库提取pdf中的文字

    Python利用pdfplumber库提取pdf中的文字

    pdfplumber是一个用于从PDF文档中提取文本和表格数据的Python库,它可以帮助用户轻松地从PDF文件中提取有用的信息,例如表格、文本、元数据等,本文将给大家介绍如何通过Python的pdfplumber库提取pdf中的文字,需要的朋友可以参考下
    2023-05-05
  • python 命名规范知识点汇总

    python 命名规范知识点汇总

    这里给大家分享的是在python开发过程中需要注意的命名的规范的知识汇总,有需要的小伙伴可以查看下
    2020-02-02
  • pytest全局变量的使用详解

    pytest全局变量的使用详解

    全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量,本文就来介绍一下pytest全局变量的使用,感兴趣的可以了解一下
    2023-11-11
  • Python实现搜索Google Scholar论文信息的示例代码

    Python实现搜索Google Scholar论文信息的示例代码

    这篇文章主要为大家详细介绍了如何利用Python实现搜索Google Scholar论文信息的功能,文中的示例代码讲解详细,需要的可以参考一下
    2023-03-03

最新评论