前言
多条同类折线图不想一条一条写配置。故建立空图,通过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="实训状况"))
)