# coding=utf-8 from example.commons import Collector, Faker from pyecharts import options as opts from pyecharts.charts import Bar, Page, Pie, Timeline C = Collector() @C.funcs def timeline_bar() -> Timeline: x = Faker.choose() bar0 = ( Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts("某商店2015年营业额")) ) bar1 = ( Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts("某商店2016年营业额")) ) bar2 = ( Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts("某商店2017年营业额")) ) bar3 = ( Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts("某商店2018年营业额")) ) bar4 = ( Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts("某商店2019年营业额")) ) tl = ( Timeline() .add(bar0, "2015年") .add(bar1, "2016年") .add(bar2, "2017年") .add(bar3, "2018年") .add(bar4, "2019年") ) return tl @C.funcs def timeline_pie() -> Timeline: attr = Faker.choose() pie0 = ( Pie() .add( "商家A", [list(z) for z in zip(attr, Faker.values())], rosetype="radius", radius=["30%", "55%"], ) .set_global_opts(title_opts=opts.TitleOpts("某商店2015年营业额")) ) pie1 = ( Pie() .add( "商家A", [list(z) for z in zip(attr, Faker.values())], rosetype="radius", radius=["30%", "55%"], ) .set_global_opts(title_opts=opts.TitleOpts("某商店2016年营业额")) ) pie2 = ( Pie() .add( "商家A", [list(z) for z in zip(attr, Faker.values())], rosetype="radius", radius=["30%", "55%"], ) .set_global_opts(title_opts=opts.TitleOpts("某商店2017年营业额")) ) pie3 = ( Pie() .add( "商家A", [list(z) for z in zip(attr, Faker.values())], rosetype="radius", radius=["30%", "55%"], ) .set_global_opts(title_opts=opts.TitleOpts("某商店2018年营业额")) ) pie4 = ( Pie() .add( "商家A", [list(z) for z in zip(attr, Faker.values())], rosetype="radius", radius=["30%", "55%"], ) .set_global_opts(title_opts=opts.TitleOpts("某商店2019年营业额")) ) tl = ( Timeline() .add(pie0, "2015年") .add(pie1, "2016年") .add(pie2, "2017年") .add(pie3, "2018年") .add(pie4, "2019年") ) return tl Page().add(*[fn() for fn, _ in C.charts]).render()