예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #5
0
def line_areastyle():
    obj_l = Line()
    obj_l.add_xaxis(Faker.choose())
    obj_l.add_yaxis("商家A", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
    obj_l.add_yaxis("商家B", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
    obj_l.set_global_opts(title_opts=opts.TitleOpts(title="Line-面积图", subtitle="副标题"))
    return obj_l
예제 #6
0
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
예제 #7
0
 def genMultiPie(self, left_x_list=None,left_y_list=None, right_x_list=None, right_y_list=None, title='多玫瑰示例'):
     '''
     多个玫瑰图
     param left_x_list 标注 type list
     param right_x_list 标注 type list
     datas 
     '''  
     
     left_x_list = left_x_list or Faker.choose()
     left_y_list = left_y_list or Faker.values()
     right_x_list = right_x_list or Faker.choose()
     right_y_list = right_y_list or Faker.values()
     c = (
         Pie()
         .add(
             "",
             [list(z) for z in zip(left_x_list, left_y_list)],
             radius=["30%", "75%"],
             center=["25%", "50%"],
             rosetype="radius",
             label_opts=opts.LabelOpts(is_show=False),
         )
         .add(
             "",
             [list(z) for z in zip(right_x_list, right_y_list)],
             radius=["30%", "75%"],
             center=["75%", "50%"],
             rosetype="area",
         )
         .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))
     )
     chart_name = f'static/chart{self.index}_multipie'
     make_snapshot(snapshot,c.render(f'{chart_name}.html'),f'{chart_name}.png',is_remove_html=True)
     self.index += 1
예제 #8
0
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
예제 #9
0
def bar(request,**kwargs):
    popu = (
        Bar()
            .add_xaxis([p[0] for p in POPULATION[1:]])
            .add_yaxis('国家',['%.2f' % (p[1]/100000) for p in POPULATION[1:]])
            .set_global_opts(
                title_opts=opts.TitleOpts(title="世界人口(十万)"),
                yaxis_opts=opts.AxisOpts(offset=-10),
                datazoom_opts=opts.DataZoomOpts(is_show=True,range_start=0,range_end=1)
            )
    )
    bar = (
        Bar()
           .add_xaxis(Faker.choose())
           .add_yaxis("商家A", Faker.values())
           .add_yaxis("商家B", Faker.values())
           .set_global_opts(
               title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"),
            )
    )
    if kwargs:
        return render(request,'echarts_example/bar_detail.html',{
            'myEchart':locals()[kwargs['detail']].dump_options(),
        })
    
    return render(request,'echarts_example/bar.html',{
            'myEchart':bar.dump_options(),
            'population': popu.dump_options,
            })
예제 #10
0
def render_js_py():
    with st.echo("below"):
        st.markdown("""Overwrite chart colors with JS. 
        Under 50 : red. Between 50 - 100 : blue. Over 100 : green""")
        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-自定义柱状颜色")))
        st_pyecharts(c)
def overlap_bar_line():
    bar = (
        Bar()
        .add_xaxis(Faker.months)
        .add_yaxis("蒸发量", Faker.values())
        .add_yaxis("降水量", Faker.values())
        .extend_axis(
            yaxis=opts.AxisOpts(
                axislabel_opts=opts.LabelOpts(formatter="{value} °C"), interval=5
            )
        )
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Overlap-bar+line(双 Y 轴)"),
            yaxis_opts=opts.AxisOpts(
                axislabel_opts=opts.LabelOpts(formatter="{value} m1")
            ),
        )
    )
    line = (
        Line()
        .add_xaxis(Faker.months)
        .add_yaxis("平均温度", Faker.values(), yaxis_index=1)
        )
    bar.overlap(line)
    return bar
예제 #12
0
def tab_fun():
    line = Line().add_xaxis(Faker.choose()).add_yaxis(
        series_name="xx1",
        y_axis=Faker.values(1, 100),
        itemstyle_opts=opts.ItemStyleOpts(color=Faker.rand_color())).add_yaxis(
            series_name="xx2",
            y_axis=Faker.values(1, 100),
            itemstyle_opts=opts.ItemStyleOpts(
                color=Faker.rand_color())).set_global_opts(
                    title_opts=opts.TitleOpts(title="主标题",
                                              subtitle="副标题",
                                              pos_left="10%"),
                    legend_opts=opts.LegendOpts(pos_left="40%"),
                )
    bar = Bar().add_xaxis(Faker.choose()).add_yaxis(
        series_name="柱1",
        y_axis=Faker.values(1, 100),
        itemstyle_opts=opts.ItemStyleOpts(color=Faker.rand_color())).add_yaxis(
            series_name="柱2",
            y_axis=Faker.values(1, 100),
            itemstyle_opts=opts.ItemStyleOpts(
                color=Faker.rand_color())).set_global_opts(
                    title_opts=opts.TitleOpts(title="主标题",
                                              subtitle="副标题",
                                              pos_left="10%"),
                    legend_opts=opts.LegendOpts(pos_left="40%"),
                )

    Tab().add(chart=line, tab_name="选项卡一").add(
        chart=bar, tab_name="选项卡二").render(path="D:/temp/pyecharts_tab.html")
def line_base():
    c = (Line().add_xaxis(Faker.choose()).add_yaxis(
        "商家A",
        Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Line-基本示例")))
    return c
예제 #14
0
def bar_base_with_custom_background_image():
    obj_bar = Bar(
        init_opts=opts.InitOpts(
            bg_color={
                "type":"pattern",
                "image":JsCode("img"),
                "repeat":"no-repeat"
            }
        )
    )
    obj_bar.add_xaxis(Faker.choose())
    obj_bar.add_yaxis("A", Faker.values())
    obj_bar.add_yaxis("B", Faker.values())
    obj_bar.set_global_opts(
        title_opts = opts.TitleOpts(
            title = "Bar-背景图基本示例",
            subtitle = "副标题",
            # 设置标题为白色
            title_textstyle_opts=opts.TextStyleOpts(color="white")
        )
    )
    obj_bar.add_js_funcs(
        "var img = new Image(); img.src = 'https://s2.ax1x.com/2019/07/08/ZsS0fK.jpg';"
    )
    return obj_bar
예제 #15
0
def pyplot_bar():
    # 指定字体,可解决中文乱码问题
    # plt.rcParams['font.sans-serif'] = ['SimHei'];
    plt.rcParams["font.family"] = "STSong"

    x_labels = Faker.choose()
    x = np.arange(len(x_labels))
    # x轴刻度标签位置
    width = 0.25
    # 柱子的宽度
    # 计算每个柱子在x轴上的位置,保证 x 轴刻度标签居中
    # 三组数据 x - width,x, x + width
    # 四组数据 x - 1.5*width,x - 0.5*width, x + 0.5*width, x + 1.5*width
    plt.bar(x - width / 2,
            Faker.values(1, 100),
            color='r',
            label="label_1",
            width=width)
    plt.bar(x + width / 2,
            Faker.values(1, 100),
            color='g',
            label="label_2",
            width=width)
    # x 轴数据为数字,须和 labels 标签绑定
    plt.xticks(x, labels=x_labels)
    # 指定标题以及 x、y 轴标签
    plt.title("我是标题")
    plt.xlabel("X Label")
    plt.ylabel("Y Label")
    # 指定图例显示位置,label_1、label_2
    # ['upper left' , 'upper center', 'upper right', 'center left', 'center', 'center right', 'lower left', 'lower center', 'lower right']
    plt.legend(loc='upper left')
    plt.show()
예제 #16
0
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 timeline_sankey() -> Timeline:
    tl = Timeline()
    names = ("商家A", "商家B", "商家C")
    nodes = [{"name": name} for name in names]
    for i in range(2015, 2020):
        links = [
            {"source": names[0], "target": names[1], "value": Faker.values()[0]},
            {"source": names[1], "target": names[2], "value": Faker.values()[0]},
        ]
        sankey = (
            Sankey()
            .add(
                "sankey",
                nodes,
                links,
                linestyle_opt=opts.LineStyleOpts(
                    opacity=0.2, curve=0.5, color="source"
                ),
                label_opts=opts.LabelOpts(position="right"),
            )
            .set_global_opts(
                title_opts=opts.TitleOpts(title="{}年商店(A, B, C)营业额差".format(i))
            )
        )
        tl.add(sankey, "{}年".format(i))
    return tl
예제 #18
0
def line_markline():
    obj_l = Line()
    obj_l.add_xaxis(Faker.choose())
    obj_l.add_yaxis("商家A",
                    Faker.values(),
                    markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
                    # 该参数设置在这里只对商家A起作用
                    label_opts=opts.LabelOpts(is_show=False)
                    )
    obj_l.add_yaxis("商家B",
                    Faker.values(),
                    markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
                    )

    obj_l.set_series_opts(
        # 该参数设置在这里对商家A,商家B都起作用
        # 设置该参数,则x对应的y值会显示出来,该参数默认为True
        label_opts=opts.LabelOpts(is_show=False),
    )
    obj_l.set_global_opts(
        title_opts=opts.TitleOpts(title="Line-MarkLine", subtitle="平均值的线"),
        xaxis_opts=opts.AxisOpts(
            name="x轴",

            # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格
            boundary_gap=True,
            # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True)
        ),
    )
    return obj_l
예제 #19
0
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
예제 #20
0
def bar_base():
    obj_bar = Bar()
    obj_bar.add_xaxis(Faker.choose())
    obj_bar.add_yaxis('商家A',Faker.values())
    obj_bar.add_yaxis('商家B',Faker.values())
    obj_bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
    return obj_bar
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 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 grid_vertical():
    bar = (
        Bar()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(title_opts=opts.TitleOpts(title="Grid-Bar"))
    )
    line = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Grid-Line", pos_top="48%"),
            legend_opts=opts.LegendOpts(pos_top="48%"),
        )
    )

    grid = (
        Grid()
        .add(bar, grid_opts=opts.GridOpts(pos_bottom="60%"))
        .add(line, grid_opts=opts.GridOpts(pos_top="60%"))
    )
    return grid
예제 #24
0
파일: app.py 프로젝트: xzltc/96345_flask
def bar_base() -> Bar:
    c = (
        Bar({
            "theme": ThemeType.MACARONS
        }).add_xaxis([
            "老许开锁", "培良锁行", "昌昌刻印", "赵建华", "高跟鞋", "袜子"
        ]).add_yaxis("满意", [randrange(0, 100) for _ in range(6)]).add_yaxis(
            "表扬", [randrange(0, 100) for _ in range(6)]).add_yaxis(
                "批评", [randrange(0, 100) for _ in range(6)]).set_global_opts(
                    title_opts=opts.TitleOpts(title="Bar-基本示例",
                                              subtitle="我是副标题"),
                    # 显示工具栏toolbox
                    # toolbox_opts=opts.ToolboxOpts(),
                    # 数据缩放栏
                    datazoom_opts=opts.DataZoomOpts()))

    c2 = (
        Bar()
        # Faker.choose() 测试数据 Faker是pyecharts内置的一个类
        .add_xaxis(Faker.choose()).add_yaxis(
            "满意", Faker.values(), stack="stack1").add_yaxis(
                "表扬", Faker.values(), stack="stack1").add_yaxis(
                    "批评", Faker.values(),
                    stack="stack1").set_series_opts(label_opts=opts.LabelOpts(
                        is_show=False)).set_global_opts(
                            title_opts=opts.TitleOpts(title="Bar-堆叠数据(全部)"),
                            datazoom_opts=opts.DataZoomOpts()))
    return c2
def grid_horizontal():
    scatter = (
        Scatter()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Grid-Scatter"),
            legend_opts=opts.LegendOpts(pos_left="20%"),
        )
    )
    line = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Grid-Line", pos_right="5%"),
            legend_opts=opts.LegendOpts(pos_right="20%"),
        )
    )
    grid = (
        Grid()
        .add(scatter, grid_opts=opts.GridOpts(pos_left="55%"))
        .add(line, grid_opts=opts.GridOpts(pos_right="55%")))
    return grid
예제 #26
0
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_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
예제 #28
0
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
예제 #29
0
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 line_with_smooth_connect():
    line = Line(
        init_opts=opts.InitOpts(theme='light', width='1000px', height='600px'))
    line.add_xaxis(Faker.choose())
    line.add_yaxis('平滑曲线', Faker.values(), is_smooth=True)
    line.add_yaxis('直线', Faker.values(), is_smooth=False)

    return line