Python数据可视化-玫瑰图-划分青中老年人

前言

小白在入门Pythonon后,已经知道了python的一些基本类型和语法,今天我们来做一个玫瑰图来划分航空公司青年、中年、老年人的数据可视化分析。

导入数据

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

import pandas as pd
data = pd.read_excel(r'航空公司数据(1).xlsx')

构造年龄段序列

def age_range(age):
    if age<20:
        return '少年'
    elif age<40:
        return '青年'
    elif age<60:
        return '中年'
    else:
        return '老年'
data['年龄段'] = data['年龄'].agg(age_range)
# 方法2:通过pd.cut()函数实现分箱
data['年龄段2'] = pd.cut(data['年龄'],bins=[0,20,40,60,100],labels=['少年','青年','中年','老年'])

在方法1中,根据年龄的不同范围,返回相应的年龄段标签:少年、青年、中年、老年。如果年龄小于20,则返回"少年";如果年龄小于40,则返回"青年";如果年龄小于60,则返回"中年";否则返回"老年"。

在方法2中,使用pd.cut()函数将年龄按照指定的边界值进行分箱,并为每个箱子分配一个标签。边界值为0、20、40、60、100,标签分别为"少年"、“青年”、“中年”、“老年”。这样,将data数据集中的年龄列划分为相应的年龄段。这里用的的是发法一。

统计各年龄段人数

result = data.groupby(by='年龄段')['年龄'].count()

对数据集按照年龄段进行分组,并计算每个年龄段的年龄个数。

数据类型改造

for x,y in zip(['a','b'], [1,2]):
    print(x) # 输出元组对象(和列表类似的对象)
    print(y)

list = [[x,int(y)] for x,y in zip(result.index, result.values)]
list 

使用zip()函数将两个列表进行组合,并遍历每个元素进行操作。

在循环中,x代表[‘a’, ‘b’]列表中的元素,y代表[1, 2]列表中的元素。在每次循环中,x表示元组对象中的第一个元素,y表示元组对象中的第二个元素。然后分别将它们打印出来。

接下来,新建一个名为list的列表。使用列表推导式,将result.index和result.values中的元素分别与x和y进行组合,并将结果转换为列表形式。将组合后的列表添加到list列表中。

最终结果是一个包含元组的列表,其中每个元组包括result.index和result.values中对应位置的元素。

画图

c = (
    Pie(init_opts=opts.InitOpts(width="600px", height="400px")) # 设置背景的大小
    .add(
        series_name = "年龄段", # 必须项
        data_pair = list,
        radius=["20%", "40%"], # 设置环的大小
#         center=["20%", "50%"], # 设置饼图的位置
        rosetype="radius", # 设置玫瑰图类型
        label_opts=opts.LabelOpts(formatter="{a}:{b}\n个数:{c}\n占比:{d}%"), # 设置标签内容格式
    )
    .set_colors(["blue", "green", "yellow", "red"]) # 颜色设置
    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"),
                    legend_opts=opts.LegendOpts(pos_top="10%", pos_left="25%"), # 设置图示的位置
                    )
)
c.render_notebook()

使用 pyecharts 库创建一个玫瑰图(Pie-Rose)来展示年龄段的数据情况。

Pie 是 pyecharts 库中的一个类,用于创建饼图和玫瑰图。
init_opts 是设置饼图背景的大小。
add 方法用于添加数据系列到图表中。
series_name 是数据系列的名称,这里设置为"年龄段"。
data_pair 是数据系列的数据项,这里使用了之前生成的list列表。
radius 设置环的大小。
rosetype 设置为"radius"表示玫瑰图类型。
label_opts 是设置标签内容格式,这里使用了特定的格式字符串。
set_colors 是设置饼图扇区的颜色。
set_global_opts 设置全局选项,包括标题、图例等。
title_opts 设置标题选项,这里设置了标题为"Pie-玫瑰图示例"。
legend_opts 设置图例选项,这里设置了图例的位置。
最后,使用 c.render_notebook() 将图表渲染在Notebook中。注意,这段代码需要在支持pyecharts库的环境中运行,否则会报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值