Pyecharts笔记(8)-不定系列数的Bar图

前言

多条同类折线图不想一条一条写配置。故建立空图,通过for循环和overlap()叠加同类折线图,可以实现line()的多系列图(链接)。


import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.faker import Faker
import pandas as pd

#读取excle数据
数据 = pd.read_excel(r"C:\Users\lenovo\Desktop\data_test.xlsx",sheet_name='Sheet2')
print(数据)

# 提取列名并转化为列表,倒序(个人需求,可以不用)
列名_list = list(数据.columns.values)
列名_list.reverse()

def sell_result2() -> Line:
    c = (
        Line()
        .add_xaxis(数据["{}".format(列名_list[-1])].values.tolist())
        .set_global_opts(title_opts=opts.TitleOpts(title="公司销售情况"))
    )
    for i in range(0,5):
        c_ = (
            Line()
            .add_xaxis(数据["{}".format(列名_list[-1])].values.tolist())
            #.add_yaxis(columns[i], data[i])
            .add_yaxis("{}".format(列名_list[i]), 数据["{}".format(列名_list[i])].values.tolist(), is_symbol_show=False,
                           is_connect_nones=True, linestyle_opts=opts.LineStyleOpts(width=2),
                           label_opts=opts.LabelOpts(is_show=False), )
        )

        c.overlap(c_)					# 堆叠
    return c

sell_result2().render('循环细节设置.html')

在这里插入图片描述

不定系列数的Bar图

但我试过该方法在bar()上失效。故想出了另外的解法,分享如下。

####### 循环Bar图 ##########

def common_bar():
    print('循环Bar图')
    xaxis_data = ['理论训', '实训第1天', '实训第2天', '实训第3天']
    yaxis_data = [[22, 332, 1, 278],[122, 332, 9, 278],[222, 33, 69, 278],[322, 32, 16, 78]]
    if len(yaxis_data)==1:
        c = (
            Bar()
            .add_xaxis(xaxis_data)
            .add_yaxis("day1",yaxis_data[0],label_opts=opts.LabelOpts(is_show=True), )
            .set_global_opts(title_opts=opts.TitleOpts(title="实训状况"))
        )
    elif len(yaxis_data)==2:
        c = (
            Bar()
            .add_xaxis(xaxis_data)
            .add_yaxis("day1",yaxis_data[0],label_opts=opts.LabelOpts(is_show=True), )
            .add_yaxis("day2",yaxis_data[1],label_opts=opts.LabelOpts(is_show=True), )
            .set_global_opts(title_opts=opts.TitleOpts(title="实训状况"))
        )
    elif len(yaxis_data)==3:
        c = (
            Bar()
            .add_xaxis(xaxis_data)
            .add_yaxis("day1",yaxis_data[0],label_opts=opts.LabelOpts(is_show=True), )
            .add_yaxis("day2",yaxis_data[1],label_opts=opts.LabelOpts(is_show=True), )
            .add_yaxis("day3",yaxis_data[2],label_opts=opts.LabelOpts(is_show=True), )
            .set_global_opts(title_opts=opts.TitleOpts(title="实训状况"))
        )
    elif len(yaxis_data)==4:
        c = (
            Bar()
            .add_xaxis(xaxis_data)
            .add_yaxis("day1",yaxis_data[0],label_opts=opts.LabelOpts(is_show=True), )
            .add_yaxis("day2",yaxis_data[1],label_opts=opts.LabelOpts(is_show=True), )
            .add_yaxis("day3",yaxis_data[2],label_opts=opts.LabelOpts(is_show=True), )
            .add_yaxis("day4",yaxis_data[3],label_opts=opts.LabelOpts(is_show=True), )
            .set_global_opts(title_opts=opts.TitleOpts(title="实训状况"))
        )

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值