前言
小白在入门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库的环境中运行,否则会报错。