通过AI帮我分析实现的2019销售季度对比叠加图

话不多说,看效果

1)先准备销售表内容:高手自测.xlsx

2)向kimi上传文件,并提问

3)得出结果,代码如下:

import pandas as pd
from pyecharts.charts import Bar, Line, Overlap
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel('高手自测3.xlsx')

# 数据预处理
# 将数据转换为适合图表展示的格式
data = {
    '一处': {'一季度': df.loc[df['Unnamed: 1'] == '张三', '一季度'].values[0],
              '二季度': df.loc[df['Unnamed: 1'] == '张三', '二季度'].values[0],
              '三季度': df.loc[df['Unnamed: 1'] == '张三', '三季度'].values[0],
              '四季度': df.loc[df['Unnamed: 1'] == '张三', '四季度'].values[0]},
    '二处': {'一季度': df.loc[df['Unnamed: 1'] == '李四', '一季度'].values[0],
              '二季度': df.loc[df['Unnamed: 1'] == '李四', '二季度'].values[0],
              '三季度': df.loc[df['Unnamed: 1'] == '李四', '三季度'].values[0],
              '四季度': df.loc[df['Unnamed: 1'] == '李四', '四季度'].values[0]},
    '三处': {'一季度': df.loc[df['Unnamed: 1'] == '王五', '一季度'].values[0],
              '二季度': df.loc[df['Unnamed: 1'] == '王五', '二季度'].values[0],
              '三季度': df.loc[df['Unnamed: 1'] == '王五', '三季度'].values[0],
              '四季度': df.loc[df['Unnamed: 1'] == '王五', '四季度'].values[0]},
    '四处': {'一季度': df.loc[df['Unnamed: 1'] == '赵六', '一季度'].values[0],
              '二季度': df.loc[df['Unnamed: 1'] == '赵六', '二季度'].values[0],
              '三季度': df.loc[df['Unnamed: 1'] == '赵六', '三季度'].values[0],
              '四季度': df.loc[df['Unnamed: 1'] == '赵六', '四季度'].values[0]},
}

# 创建多柱图和折线图的组合图表
bar = (
    Bar()
    .add_xaxis(["一季度", "二季度", "三季度", "四季度"])
    .add_yaxis("业绩", [v for _, v in data['一处'].items()], category_gap="50%")
    .extend_yaxis(
        ["业绩", "业绩", "业绩", "业绩"],
        [[data['二处'][k] for k in data['二处'].keys()],
         [data['三处'][k] for k in data['三处'].keys()],
         [data['四处'][k] for k in data['四处'].keys()]]
    )
)

line = (
    Line()
    .add_xaxis(["一季度", "二季度", "三季度", "四季度"])
    .add_yaxis("2016年", [df.loc[df['Unnamed: 1'] == '四处', '2016年'].values[0]])
    .add_yaxis("2015年", [df.loc[df['Unnamed: 1'] == '四处', '2015年'].values[0]])
)

overlap = Overlap()
overlap.add(bar)
overlap.add(line)

# 设置全局配置项
overlap.set_global_opts(title_opts=opts.TitleOpts(title="2019年每个处个季度业绩分析表"))

# 渲染图表到HTML文件中
overlap.render('2019_业绩分析.html')

4)将代码进行测试,发现以下问题:

        4.1)overlap错误(应该是版本问题),果断修改为line.overlap

        4.2)再运行报如下错误

        4.3)报错看不懂,也没空研究,果断修改输入源xlsx文件,内容如下

5)重新上传附件,让kimi按前述要求再分析附件,一次次让其改进,最终如下

6)kimi最终给出的代码如下:

import pandas as pd
from pyecharts.charts import Bar, Line
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel('301-002.xlsx')

# 提取每个部门的业绩数据
data = {
    '一处': [130, 85, 846, 100],
    '二处': [140, 60, 798, 98],
    '三处': [180, 70, 640, 64],
    '四处': [200, 120, 580, 89],
    '合计': [650, 335, 2864, 351]
}

# 将季度数据转换为图表所需的格式
x_axis_data = ["一季度", "二季度", "三季度", "四季度"]

# 创建多柱图
bar = (
    Bar()
    .add_xaxis(x_axis_data)
    .add_yaxis("一处", data['一处'])
    .add_yaxis("二处", data['二处'])
    .add_yaxis("三处", data['三处'])
    .add_yaxis("四处", data['四处'])
    .add_yaxis("合计", data['合计'])
    .set_global_opts(title_opts=opts.TitleOpts(title="2019年每个处个季度业绩分析表"))
)

# 创建折线图,反映每个季度的合计业绩
line = (
    Line()
    .add_xaxis(x_axis_data)
    .add_yaxis("季度合计业绩", [sum(data['合计'][i::4]) for i in range(4)])
    .set_global_opts(title_opts=opts.TitleOpts(title="2019年季度合计业绩分析"))
)

# 渲染图表到HTML文件中
bar.render('2019_业绩分析柱状图.html')
line.render('2019_季度合计业绩分析折线图.html')

7)运行后,看到的结果是一个对比柱图,一个折线图

8)虽然未达到想要的叠加图效果,但也算基本解决问题,后面靠自己修改代码,最终修改代码如下:

import pandas as pd
from pyecharts.charts import Bar, Line
from pyecharts import options as opts

# 读取Excel文件
df = pd.read_excel('static/datafiles/301/002/301-002.xlsx')

# 提取每个部门的业绩数据
data = {
    '一处': [130, 85, 846, 100],
    '二处': [140, 60, 798, 98],
    '三处': [180, 70, 640, 64],
    '四处': [200, 120, 580, 89],
    '合计': [650, 335, 2864, 351]
}

# 将季度数据转换为图表所需的格式
x_axis_data = ["一季度", "二季度", "三季度", "四季度"]

# 创建多柱图
bar = (
    Bar()
    .add_xaxis(x_axis_data)
    .add_yaxis("一处", data['一处'])
    .add_yaxis("二处", data['二处'])
    .add_yaxis("三处", data['三处'])
    .add_yaxis("四处", data['四处'])
    .set_global_opts(title_opts=opts.TitleOpts(title="2019年每个处个季度业绩分析表"))
)

# 创建折线图,反映每个季度的合计业绩
line = (
    Line()
    .add_xaxis(x_axis_data)
    .add_yaxis("季度合计业绩", [sum(data['合计'][i::4]) for i in range(4)])
    # .set_global_opts(title_opts=opts.TitleOpts(title="2019年季度合计业绩分析"))
)

# 渲染图表到HTML文件中
# bar.render('2019_业绩分析柱状图.html')
line.overlap(bar)
line.set_global_opts(title_opts=opts.TitleOpts(title="2019年每个处个季度业绩分析表"))
line.render('2019_业绩分析.html')

相关附件到我的资源里下载:

https://download.csdn.net/download/gui818/89631853

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿桂天山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值