Code前端首页关于Code前端联系我们

使用直方图、饼图和条形图进行数据分析(Python代码)

terry 2年前 (2023-09-25) 阅读数 53 #后端开发

直方图、饼图和条形图做数据分析(Python代码)

对于定量数据,如果你想知道分布形状是对称还是不对称,并发现一些极大或极小的可疑值,可以使用绘制频率分布表,绘制频数分布直方图,绘制茎叶图进行可视化分析;对于定性数据,可以使用饼图和条形图直观地显示分布情况。 ? ,您通常遵循以下 步骤

  • 步骤 1:查找范围。
  • 第2步:确定组距和组数。
  • 第三步:确定点。
  • 第四步:列出频数分布表。
  • 第五步:绘制频率分布直方图。遵循 的最重要的 原则 如下:
    1. 组应该是互斥的。
    2. 每组必须包含所有数据。
    3. 每组的组宽最好相同。

    下面结合具体例子来利用分布分析对定量数据进行特征分析。

    表3-2为“老七刺身”菜肴2014年第二季度的销售数据,绘制了销量频数分布表和频数分布图,并对定量数据进行了相应的分析。

    直方图、饼图和条形图做数据分析(Python代码)

    ▲表3-2“生鱼片”销售情况

    1.求范围

    范围 = 最大值 - 最小值 = 3960-45 = 3915

    2。分组

    根据业务数据的含义,希望分组间隔为500,分组数量如下。

    组数 = 范围/组距离 = 3915/500 = ≈8

    3。确定

    点的分布区间,如表3-3所示。

    直方图、饼图和条形图做数据分析(Python代码)

    ▲表3-3 分布区间

    4.绘制频数分布直方图

    根据分组间隔,得到表3-4的频数分布表。

    • 下面,第一列将数据范围分为几段,其中第一段必须包含最小值,最后一段必须包含最大值。通常将每个段设置为左闭右开的半开区间,例如第一段为[0.500)。
    • 第2栏的组中值是各组段的代表值,是将该组段的上限值和下限值相加并除以2得到的。
    • 第3列和第4列分别是频率和频率。
    • 第五列是累积频率。是否计算该栏的值要根据具体情况而定。

    直方图、饼图和条形图做数据分析(Python代码)

    ▲表3-4频率分布

    5.画频数分布直方图

    以菜品“生鱼片”2014年第二季度的日销量分段为横轴,以各分组分段的频数密度(频数与分组距离之比)为纵轴,将表3-4中的数据绘制在频率分布直方图上,如代码清单3-3所示。

    import pandas as pd
    import numpy as np
    catering_sale = '../data/'        # 餐饮数据
    data = (catering_sale,names=['date','sale'])  # 读取数据,指定“日期”
        列为索引
    
    bins = [0,500,1000,1500,2000,2500,3000,3500,4000]
    labels = ['[0,500)','[500,1000)','[1000,1500)','[1500,2000)',
           '[2000,2500)','[2500,3000)','[3000,3500)','[3500,4000)']
    
    data['sale分层'] = (, bins, labels=labels)
    aggResult = (by=['sale分层'])['sale'].agg({'sale': })
    
    pAggResult = round(aggResult/(), 2, ) * 100
    
    import  as plt
    (figsize=(10,6))     # 设置图框大小尺寸
    pAggResult['sale'].plot(kind='bar',width=)  # 绘制频率直方图
    [''] = ['SimHei']               # 用来正常显示中文标签
    ('季度销售额频率分布直方图',fontsize=20)
    ()

    运行代码3-3,得到季度销售频数分布直方图,如图3-3所示。

    直方图、饼图和条形图做数据分析(Python代码)

    ▲ 图 3-3 季度销售频率分布直方图

    02 定性数据分布分析

    对于定性变量,通常根据变量的分类类型进行分组,可以用饼图和饼图来描述条形图。定性变量的分布,如代码表3-4所示。

    • 代码表 3-4 一定时期内不同菜品的销量分布
    import pandas as pd
    import  as plt
    catering_dish_profit = '../data/'# 餐饮数据
    data = (catering_dish_profit)  # 读取数据,指定“日期”列
      为索引
    
    # 绘制饼图
    x = data['盈利']
    labels = data['菜品名']
    (figsize=(8, 6))  # 设置画布大小
    (x,labels=labels)  # 绘制饼图
    [''] = 'SimHei'
    ('菜品销售量分布(饼图)')  # 设置标题
    ('equal')
    ()
    
    # 绘制条形图
    x = data['菜品名']
    y = data['盈利']
    (figsize=(8, 4))  # 设置画布大小
    (x,y)
    [''] = 'SimHei'
    ('菜品')  # 设置x轴标题
    ('销量')  # 设置y轴标题
    ('菜品销售量分布(条形图)')# 设置标题
    ()  # 展示图片

    饼图的每个扇区代表每种类型的百分比或频率。饼图根据定性变量类型的数量进行分类。不同的部分,每个部分的大小与每种类型出现的频率成正比;条形图的高度代表每种类型的百分比或频率,条形图的宽度没有任何意义。

    执行代码表3-4,即可得到一定时期内不同菜品的销量分布图,如图3-4和图3-5所示。

    直方图、饼图和条形图做数据分析(Python代码)

    ▲ 图 3‑4 蔬菜销量分布(饼图)

    直方图、饼图和条形图做数据分析(Python代码)

    ▲ 图 3‑5 蔬菜销量分布(柱状图)

    作者简介:张良军,大数据挖掘与分析、模型资深专家识别专家,AI技术领域专家。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门