0803 全年销量变化(批处理获得堆叠柱状图)

0803 全年销量变化(批处理获得堆叠柱状图)

知识点

读取excel
绘制堆叠柱状图

题目和解题步骤

阿珍要查看2020年的商品销售额变化,一行行输入比较麻烦,想要从Excel文档中读取数据。

如图所示,文档保存了三个商品1~12月的销量,文档路径为 /Users/azhen/核桃销量.xlsx

题目要求:

  1. 定义函数 read_excel() 传入参数row,读取行数据,返回结果,例如:(‘巧克力’, [‘2340’, 6378, 6560…]);
  2. 读取第一行数据作为x轴;
  3. 读取2~4行数据作为y轴,绘制堆叠柱状图;
  4. 将series_name设置为对应商品的名称;
  5. 使用 LabelOpt() 将标签设置为居中 inside ;
  6. 使用 TitleOpts() 函数将标题设置为"2020年商品销售额变化"
  7. 将文档保存到路径 /Users/azhen/bar_stack.html

在这里插入图片描述
在这里插入图片描述

代码

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

# 将文件路径赋值给path
path = "/Users/azhen/核桃销量.xlsx"
# 使用openpyxl.load_workbook()读取文件,赋值给wb
wb = openpyxl.load_workbook(path)
# 使用wb[]读取2020年,赋值给year
year = wb["2020年"]

# TODO 定义函数read_excel()传入参数row
def read_excel(row):
    # TODO 使用year[]读取行数据赋值给content
    content = year[row]
    # TODO 定义列表y_list 
    y_list = []
    # TODO 使用for循环遍历content[1:],遍历的变量设为item
    for item in content[1:]:
        # TODO 使用 .value 获取单元格的值,赋值给num
        num = item.value
        # TODO 使用append()将num追加到列表中
        y_list.append(num)
    # TODO 使用return返回(行的名称,列表)
    return(content[0].value,y_list)

# 使用Bar()创建实例,赋值给bar
bar = Bar()

# 将数据标签配置项opts.LabelOpts(),赋值给变量label_options
# 在数据标签配置项中添加参数position,设置为"inside"
label_options = opts.LabelOpts(position="inside")

# 使用for循环和range()遍历数字1~4
for i in range(1, 5):
    # 调用read_excel()函数,并将i传入,赋值给data
    data = read_excel(i)
    # 读取data的第一个元素赋值给name
    name = data[0]
    # 读取data的第二个元素赋值给num
    num = data[1]
    # TODO 使用if判断当i等于1时
    if i==1 :
        # TODO 传入参数xaxis_data=num,使用add_xaxis()设置x轴
        bar.add_xaxis(xaxis_data=num)
    # TODO 其他情况
    else:
        # TODO 将图例名name,赋值给series_name,将y轴参数num,赋值给y_axis
        # 添加参数stack,将值设置为sales
        # 添加参数label_opts,将其值设置为label_options
        # 将参数依次传入add_yaxis()
        bar.add_yaxis(series_name=name,y_axis=num,stack="sales",label_opts = label_options)

# 使用全局配置项,设置标题为"2020年商品销售额变化"
bar.set_global_opts(
    title_opts=opts.TitleOpts(title="2020年商品销售额变化"))

# 使用render函数将堆积柱状图保存在指定路径
bar.render("/Users/azhen/bar_stack.html")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值