0903 年度转化率展示

0903 年度转化率展示

知识点

漏斗图

读取excel

题目和解题步骤

飞飞需要将全年的销售情况绘制成漏斗图以看板的样式展现出来,文档存储路径为:
/Users/feifei/销售.xlsx

题目要求:

  1. 定义函数read_excel(sheet),传入工作表返回二维列表;计算百分比时,使用round()保留一位小数;
  2. 学习提示的知识点读取文档中所有的工作表;
  3. 利用处理后的数据绘制漏斗图 ;
  4. 使用 LegendOpts() 隐藏图例;
  5. 使用 TitleOpts() 将标题设置为:f"{月份}销售"
  6. 将漏斗图逐个追加到看板中;
  7. 将图表保存到对应路径:/Users/feifei/year.html
    在这里插入图片描述
    在这里插入图片描述

代码

# 使用from...import从pyecharts.charts导入Funnel, Tab
from pyecharts.charts import Funnel, Tab
# 使用from...import从pyecharts导入options,简写为opts
from pyecharts import options as opts
# 使用import导入openpyxl模块
import openpyxl

# 将文件路径"/Users/feifei/销售.xlsx",赋值给path
path = "/Users/feifei/销售.xlsx"
# 使用openpyxl.load_workbook()读取文件,赋值给wb
wb = openpyxl.load_workbook(path)

# 定义函数read_excel(),传入参数sheet
def read_excel(sheet):
    # 新建一个列表funnelList
    funnelList =[]
    # 读取第1行内容赋值给label
    label = sheet[1]
    # 读取第2行内容赋值给num
    num = sheet[2]
    # 使用for循环遍历1~5
    for data in range(1, 6):
        # 新建列表temp
        temp = []
        # 使用if判断data等于1时
        if data == 1:
            # 使用append()将label[data]和100%追加到列表temp
            temp.append(label[data].value+"100%")
        # 否则
        else:
            # 使用(当前项/前一项)*100,赋值给pass_rate
            pass_rate = (num[data].value/num[data-1].value)*100
            # 使用round()保留pass_rate的一位小数,赋值给percent
            percent = round(pass_rate, 1)
            # 使用append()将标签和格式化组成的x%追加到列表temp
            temp.append(label[data].value+f"{percent}%")
        # 使用append()将num[data]追加到列表temp
        temp.append(num[data].value)
        # 使用append()将temp追加到列表funnelList
        funnelList.append(temp)
    # 使用return返回funnelList
    return funnelList

# TODO 使用Tab()函数创建实例赋值给tab
tab = Tab()
# TODO for循环遍历wb中的所有工作表的名称
for item in wb.sheetnames:

    # TODO 使用wb[]读取工作表,赋值给sheet
    sheet = wb[item]
    # TODO 调用read_excel()传入工作表名称,赋值给total_data
    total_data = read_excel(sheet)
    # TODO 使用Funnel()函数创建实例赋值给funnel
    funnel = Funnel()
    # TODO 将series_name设为空,将total_data赋值给data_pair,设置gap值为10
    # 将参数添加到add()函数中
    funnel.add(series_name = "",data_pair = total_data,gap = 10)
    
    # TODO 使用LegendOpts(),传入参数is_show=False,赋值给legend_opts,隐藏图例 
    # 使用TitleOpts(),设置标题为f"{item}销售",赋值给title_opts 
    funnel.set_global_opts(legend_opts = opts.LegendOpts(is_show = False),title_opts = opts.TitleOpts(f"{item}销售"))

    # TODO 将funnel添加到tab中,名称为工作表的名称
    tab.add(funnel,item)
# 使用render()生成漏斗图,存到路径"/Users/feifei/year.html"
tab.render("/Users/feifei/year.html")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值