def funnel_label_inside() -> Funnel: c = (Funnel().add( "商品", [list(z) for z in zip(Faker.choose(), Faker.values())], label_opts=opts.LabelOpts(position="inside"), ).set_global_opts(title_opts=opts.TitleOpts(title="Funnel-Label(inside)"))) return c
def timeline_map() -> Timeline: map0 = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts( title_opts=opts.TitleOpts(title="Map-2015年某些数据"), visualmap_opts=opts.VisualMapOpts(max_=200), )) map1 = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts( title_opts=opts.TitleOpts(title="Map-2016年某些数据"), visualmap_opts=opts.VisualMapOpts(max_=200), )) map2 = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts( title_opts=opts.TitleOpts(title="Map-2017年某些数据"), visualmap_opts=opts.VisualMapOpts(max_=200), )) map3 = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts( title_opts=opts.TitleOpts(title="Map-2018年某些数据"), visualmap_opts=opts.VisualMapOpts(max_=200), )) map4 = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts( title_opts=opts.TitleOpts(title="Map-2019年某些数据"), visualmap_opts=opts.VisualMapOpts(max_=200), )) tl = (Timeline().add(map0, "2015年").add(map1, "2016年").add(map2, "2017年").add( map3, "2018年").add(map4, "2019年")) return tl
def line_connect_null() -> Line: y = Faker.values() y[3], y[5] = None, None c = (Line().add_xaxis(Faker.choose()).add_yaxis( "商家A", y, is_connect_nones=True).set_global_opts( title_opts=opts.TitleOpts(title="Line-连接空数据"))) return c
def scatter_muti_dimension_data() -> Scatter: c = ( Scatter() .add_xaxis(Faker.choose()) .add_yaxis( "商家A", [list(z) for z in zip(Faker.values(), Faker.choose())], label_opts=opts.LabelOpts( formatter=JsCode( "function(params){return params.value[1] +' : '+ params.value[2];}" ) ), ) .set_global_opts( title_opts=opts.TitleOpts(title="Scatter-多维度数据"), tooltip_opts=opts.TooltipOpts( formatter=JsCode( "function (params) {return params.name + ' : ' + params.value[2];}" ) ), visualmap_opts=opts.VisualMapOpts( type_="color", max_=150, min_=20, dimension=1 ), ) ) return c
def bar_base(): # 采用链式写法,先传入所有的数据和配置 c = ( Bar() # 传入X轴数据,选择七个品类中的一种中的七样东西 .add_xaxis(Faker.choose()) # 传入Y轴数据,第一个参数是系列的名称,第二个参数是数据(随机选择20-150之间的整数) # 堆叠显示,加入堆叠系列名称,同一个系统堆叠在同一个柱子上,不堆叠的不传参数 .add_yaxis('商家A', Faker.values(), stack='stack1') # 隐藏某系列数据False,隐藏后图例是灰色,点击就可以显示出来,默认参数是True显示 .add_yaxis('商家B', Faker.values(), stack='stack1', is_selected=True) # 翻转XY轴,变成横条图,X轴竖向显示,Y轴横向显示 # .reversal_axis() # 柱状图的每个商品的数量是显示在柱子顶部,翻转后数据要显示在右侧 .set_series_opts(label_opts=opts.LabelOpts( is_show=True, color='black', position='top')) # 设置全局配置项 .set_global_opts( # 显示主副标题 title_opts=opts.TitleOpts(title='主标题:商家', subtitle='副标题:销售记录'), # 显示工具栏,工具栏用于刷新图片,下载图片,查看图片数据等 toolbox_opts=opts.ToolboxOpts(), # 隐藏图例False,默认显示图例True,没有该设置,默认所有图例都显示 legend_opts=opts.LegendOpts(is_show=True), # 设置Y轴坐标刻度,由于堆叠以后数据超过单独的最大数据150,需要将刻度调整 yaxis_opts=opts.AxisOpts(min_=0, max_=300))) # 绘制图片 pic = c.render() return pic
def theme_infographic() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-infographic"))) return c
def effectscatter_symbol() -> EffectScatter: c = ( EffectScatter() .add_xaxis(Faker.choose()) .add_yaxis("", Faker.values(), symbol=SymbolType.ARROW) ).set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter-不同Symbol")) return c
def theme_wonderland() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WONDERLAND)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-wonderland"))) return c
def bar_custom_bar_color() -> Bar: color_function = """ function (params) { if (params.value > 0 && params.value < 50) { return 'red'; } else if (params.value > 50 && params.value < 100) { return 'blue'; } return 'green'; } """ c = (Bar().add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values(), itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)), ).add_yaxis( "商家B", Faker.values(), itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)), ).add_yaxis( "商家C", Faker.values(), itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_function)), ).set_global_opts(title_opts=opts.TitleOpts(title="Bar-自定义柱状颜色"))) return c
def theme_walden() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-walden"))) return c
def theme_westeros() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WESTEROS)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-westeros"))) return c
def theme_vintage() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-vintage"))) return c
def test_funnel_base(fake_writer): c = Funnel().add("商品", [list(z) for z in zip(Faker.choose(), Faker.values())]) c.render() _, content = fake_writer.call_args[0] assert_equal(c.theme, "white") assert_equal(c.renderer, "canvas")
def scatter_value_xaxis() -> Scatter: c = (Scatter().add_xaxis(Faker.values()).add_yaxis( "商家A", Faker.values()).set_global_opts( title_opts=opts.TitleOpts(title="Scatter-X 数值轴"), xaxis_opts=opts.AxisOpts(type_="value"), tooltip_opts=opts.TooltipOpts(formatter="{c}"))) return c
def bar_stack0() -> Bar: c = (Bar().add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values(), stack="stack1").add_yaxis( "商家B", Faker.values(), stack="stack1").set_series_opts( label_opts=opts.LabelOpts(is_show=False)).set_global_opts( title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)"))) return c
def theme_macarons() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-macarons"))) return c
def bar_reversal_axis() -> Bar: c = (Bar().add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).reversal_axis().set_series_opts( label_opts=opts.LabelOpts(position="right")).set_global_opts( title_opts=opts.TitleOpts(title="Bar-翻转 XY 轴"))) return c
def pie_base() -> Pie: c = (Pie().add( "", [list(z) for z in zip(Faker.choose(), Faker.values())]).set_global_opts( title_opts=opts.TitleOpts(title="Pie-基本示例")).set_series_opts( label_opts=opts.LabelOpts(formatter="{b}: {c}"))) return c
def theme_default() -> Bar: c = (Bar().add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values()).add_yaxis("商家B", Faker.values()).add_yaxis( "商家C", Faker.values()).add_yaxis("商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-default"))) return c
def line_base(): c = ( Line() # 传入X轴数据,选择七个品类中的一种中的七样东西 .add_xaxis(Faker.choose()) # 传入Y轴数据,第一个参数是系列的名称,第二个参数是数据(随机选择20-150之间的整数) # 平滑曲线加上is_smooth=True即可自动平滑 .add_yaxis('商家A', Faker.values(), is_smooth=True) # 隐藏某系列数据False,隐藏后图例是灰色,点击就可以显示出来,默认参数是True显示 .add_yaxis('商家B', Faker.values(), is_smooth=True, is_selected=True) # 设置数据配置项 # 每个商品的数量是显示在点的上部,改变数据的颜色 .set_series_opts(label_opts=opts.LabelOpts( is_show=True, color='red', position='top')) # 设置全局配置项 .set_global_opts( # 显示主副标题 title_opts=opts.TitleOpts(title='主标题:商家', subtitle='副标题:销售记录'), # 显示工具栏,工具栏用于刷新图片,下载图片,查看图片数据等 toolbox_opts=opts.ToolboxOpts(), # 隐藏图例False,默认显示图例True,没有该设置,默认所有图例都显示 legend_opts=opts.LegendOpts(is_show=True), # 设置Y轴坐标刻度 yaxis_opts=opts.AxisOpts(min_=0, max_=180))) # 绘制图片 pic = c.render() return pic
def scatter_visualmap_color() -> Scatter: c = (Scatter().add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values()).set_global_opts( title_opts=opts.TitleOpts(title="Scatter-VisualMap(Color)"), visualmap_opts=opts.VisualMapOpts(max_=150), )) return c
def theme_roma() -> Bar: c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.ROMA)).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).add_yaxis("商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-roma"))) return c
def scatter_base() -> Scatter: c = ( Scatter() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Scatter-基本示例")) ) return c
def scatter_visualmap_size() -> Scatter: c = (Scatter().add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts( title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"), visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20), )) return c
def effectscatter_base() -> EffectScatter: c = ( EffectScatter() .add_xaxis(Faker.choose()) .add_yaxis("", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter-基本示例")) ) return c
def bar_base_with_animation() -> Bar: c = (Bar(init_opts=opts.InitOpts(animation_opts=opts.AnimationOpts( animation_delay=1000, animation_easing="elasticOut"))).add_xaxis( Faker.choose()).add_yaxis("商家A", Faker.values()).add_yaxis( "商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts( title="Bar-动画配置基本示例", subtitle="我是副标题"))) return c
def line_step() -> Line: c = ( Line() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values(), is_step=True) .set_global_opts(title_opts=opts.TitleOpts(title="Line-阶梯图")) ) return c
def theme_purple_passion() -> Bar: c = (Bar(init_opts=opts.InitOpts( theme=ThemeType.PURPLE_PASSION)).add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values()).add_yaxis("商家B", Faker.values()).add_yaxis( "商家C", Faker.values()).add_yaxis( "商家D", Faker.values()).set_global_opts( title_opts=opts.TitleOpts("Theme-purple-passion"))) return c
def bar_with_brush() -> Bar: c = (Bar().add_xaxis(Faker.choose()).add_yaxis( "商家A", Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts( title_opts=opts.TitleOpts(title="Bar-Brush示例", subtitle="我是副标题"), brush_opts=opts.BrushOpts(), )) return c
def bar_histogram() -> Bar: c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values(), category_gap=0, color=Faker.rand_color()) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图")) ) return c