0501 餐厅盈利分析

0501 餐厅盈利分析

知识点

帕累托图

题目和解题步骤

到了年底,花花要对自己的餐厅进行盈利分析,利用帕累托图调查哪些菜品盈利较多,哪些盈利较少。

题目要求:

  1. 将菜品名字作为x轴;
  2. 菜品盈利额作为y轴,绘制柱状图,图例设置为盈利额;
  3. 计算各个菜品的盈利占总盈利额的比例,作为y轴绘制折线图,图例设置为盈利占比(%);
  4. 使用 AxisOpts() 函数将x轴的标签旋转45度;
  5. 使用 TitleOpts() 函数将标题设置为各菜品盈利额;
  6. 使用 overlap() 将折线图叠加在柱状图上。
  7. 将图表保存到路径:/Users/huahua/restaurant.html

在这里插入图片描述

代码

# 定义各菜品名字和其盈利额
dish_profit = {"番茄鸡蛋":9900,"避风塘茄夹":6660,"广东菜心":5210,"红烧肉":8880,"土豆烧排骨":2300,"木耳炒肉":1600,"虾仁蒸蛋":4280,"胡萝卜牛腩":3460,"水果沙拉":1800,"狮子头":3200}

# TODO 根据字典value的大小,对dish_profit的元素进行降序排序,然后结果赋值给result
result = sorted(dish_profit.items(),key=lambda item:item[1],reverse=True)

# 定义一个dishList和profitList的空列表
dishList = []
profitList = []

# for循环遍历列表result
for item in result:
    # 其中元组中第一个元素就是x轴的数据,添加到列表dishList中
    dishList.append(item[0])
    # 其中元组的第二个元素就是y轴的数据,添加到列表profitList中
    profitList.append(item[1])

# 定义一个累计频率的空列表percentlist
percentlist = []
# 定义一个计算累计频率的变量accu_percent,赋值为0
accu_percent = 0

# 遍历列表profitList中的每个元素
for profit in profitList:
    # 计算单个菜品占所有菜品的盈利额比例,乘100,赋值给percent
    percent = profit/sum(profitList)*100
    # 累计频率accu_percent,加上当前菜品的频率,得到当前的累计频率accu_percent
    accu_percent = accu_percent + percent
    # 使用round()函数保留两位小数,append到列表percentlist中
    percentlist.append(round(accu_percent,2))

# 绘制柱状图
# 从pyecharts.charts中 导入 Bar模块
from pyecharts.charts import Bar

# 从pyecharts中导入options模块,简写为opts
from pyecharts import options as opts

# 创建一个柱状图Bar对象并赋值给变量bar
bar = Bar()

# 使用add_xaxis函数,传入dishList作为x轴数据
bar.add_xaxis(xaxis_data=dishList)

# TODO 使用add_yaxis函数,设置图例名称参数series_name为"盈利额"
# 传入profitList作为y轴数据
bar.add_yaxis(series_name = "盈利额",y_axis = profitList)

# 使用全局配置项,设置x轴旋转45度,设置标题为"各菜品盈利额"
bar.set_global_opts(
    xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate":45}),
    title_opts=opts.TitleOpts(title="各菜品盈利额")
    )

# TODO 使用extend_axis函数,参数yaxis传入坐标轴配置项opts.AxisOpts()
bar.extend_axis(yaxis=opts.AxisOpts())

# 绘制折线图
# 从pyecharts.charts中导入Line模块
from pyecharts.charts import Line

# 创建一个折线图Line对象并赋值给变量line
line = Line()

# 使用add_xaxis函数,传入dishList作为x轴数据
line.add_xaxis(xaxis_data=dishList)

# TODO 使用add_yaxis函数,设置图例名称参数series_name为"盈利占比(%)"
# 传入percentlist作为y轴数据,设置yaxis_index为1,设置z_level为1
line.add_yaxis(series_name = "盈利占比(%)",
              y_axis = percentlist,
              yaxis_index = 1,z_level=1)

# TODO 对bar使用overlap()函数,传入line,就是在柱状图的基础上叠加折线图
bar.overlap(line)

# TODO 绘制出图表/Users/huahua/restaurant.html
bar.render("/Users/huahua/restaurant.html")
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值