예제 #1
0
def bar_datazoom_slider_vertical() -> Bar:
    c = (Bar().add_xaxis(Faker.days_attrs).add_yaxis(
        "商家A", Faker.days_values, color=Faker.rand_color()).set_global_opts(
            title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-垂直)"),
            datazoom_opts=opts.DataZoomOpts(orient="vertical"),
        ))
    return c
예제 #2
0
def bar_datazoom_inside() -> Bar:
    c = (Bar().add_xaxis(Faker.days_attrs).add_yaxis(
        "商家A", Faker.days_values, color=Faker.rand_color()).set_global_opts(
            title_opts=opts.TitleOpts(title="Bar-DataZoom(inside)"),
            datazoom_opts=opts.DataZoomOpts(type_="inside"),
        ))
    return c
예제 #3
0
def draw_bar_plays(data,user_id,title="听歌方式"):
    """
    两种听歌方式
    :param plays:
    :param user_id:
    :param title:
    :return:
    """
    file_name = "user_data/" + str(user_id) + "_bar_plays.html"
    x = ["片段播放", "完整播放"]
    color = ["#749f83", "#d48265"]

    xlen = len(x)
    y = []
    for idx, item in enumerate(x):

        y.append(
            opts.BarItem(
                name=item,
                value=data[idx],
                itemstyle_opts=opts.ItemStyleOpts(color=color[idx]),
            )
        )
    c = (
        Bar()
            .add_xaxis(x)
            .add_yaxis("用户:"+str(user_id), y,color=Faker.rand_color())
            .set_global_opts(title_opts=opts.TitleOpts(title=title),toolbox_opts=opts.ToolboxOpts())
            #.render(file_name)
    )
    return c
예제 #4
0
def draw_bar_recoder(data,user_id,title = "用户行为统计"):
    """
    用户行为统计
    :param data:
    :param user_id:
    :param title:
    :return:
    """
    file_name = "user_data/" + str(user_id) + "_bar_recoder.html"
    x = ["循环播放","片段播放","查看评论","点赞评论","收藏歌曲"]
    color = ["#F79709","#749f83", "#d48265","#33CCCC","#82C182"]
    xlen = len(x)
    y = []
    for idx, item in enumerate(x):
        y.append(
            opts.BarItem(
                name=item,
                value=data[idx][1],
                itemstyle_opts=opts.ItemStyleOpts(color=color[idx]),
            )
        )
    c = (
        Bar()
            .add_xaxis(x)
            .add_yaxis("" , y, color=Faker.rand_color())
            .set_global_opts(title_opts=opts.TitleOpts(title=title),
                             toolbox_opts=opts.ToolboxOpts()
                             )
            # .render(file_name)
    )
    return c
예제 #5
0
def draw_bar_like(data,user_id,title="偏爱曲风统计"):
    """
    柱状图 偏爱统计
    :param data:
    :param user_id:
    :param title:
    :return:
    """
    file_name = "user_data/" + str(user_id) + "_bar_like.html"
    x = ["古风", "古典", "电子", "民谣", "流行", "说唱", "摇滚"]
    color = ["#C43C3C", "#7D573E", "#E6E65D", "#69DA69", "#70D4D4", "#9B7CC7", "#A2A2A2"]
    xlen = len(x)
    y = []
    for idx, item in enumerate(x):
        y.append(
            opts.BarItem(
                name=item,
                value=data[idx][1],
                itemstyle_opts=opts.ItemStyleOpts(color=color[idx]),
            )
        )
    c = (
        Bar()
            .add_xaxis(x)
            .add_yaxis("", y, color=Faker.rand_color())
            .set_global_opts(title_opts=opts.TitleOpts(title=title),
                             toolbox_opts=opts.ToolboxOpts()
                             )
            #.render(file_name)
    )
    return c
예제 #6
0
def bar_histogram_color() -> Bar:
    x = Faker.dogs + Faker.animal
    xlen = len(x)
    y = []
    for idx, item in enumerate(x):
        if idx <= xlen / 2:
            y.append(
                opts.BarItem(
                    name=item,
                    value=(idx + 1) * 10,
                    itemstyle_opts=opts.ItemStyleOpts(color="#749f83"),
                ))
        else:
            y.append(
                opts.BarItem(
                    name=item,
                    value=(xlen + 1 - idx) * 10,
                    itemstyle_opts=opts.ItemStyleOpts(color="#d48265"),
                ))

    c = (Bar().add_xaxis(x).add_yaxis(
        "series0", y, category_gap=0,
        color=Faker.rand_color()).set_global_opts(title_opts=opts.TitleOpts(
            title="Bar-直方图(颜色区分)")))
    return c
def map_base() -> Map:
    c = (
        Map()
        .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
        .set_global_opts(title_opts=opts.TitleOpts(title="Map-基本示例"))
    )
    return c
예제 #8
0
 def geoHeatMap(self,area=None,data=None,maptype='china',title='热力图示例',subtitle='副标题'):
     '''
     热力图
     param area: 省份的列表   type list  例如 ['吉林', '辽宁', '河北', '河南']
     param data: 对应的值     type list  例如 [63,10,2,30]
     应用场景  省份或者城市排行榜
     # ['黑龙江', '吉林', '辽宁', '河北', '河南', '山东', '山西', '安徽', '江西', '江苏', '浙江', '福建', '台湾', '广东',
     # '湖南', '湖北', '海南', '云南', '贵州', '四川', '青海', '甘肃', '陕西', '内蒙古', '新疆', '广西', '宁夏', '西藏',
     # '北京','天津','上海','重庆','香港','澳门']
     '''
     area = area or Faker.provinces
     data = data or Faker.values()
     c = (
         Geo()
         .add_schema(maptype=maptype)
         .add(
             "geo",
             [list(z) for z in zip(area, data)],
             type_=ChartType.HEATMAP,
         )
         # .set_series_opts(label_opts=opts.LabelOpts(is_show=True))
         .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
         .set_global_opts(
             visualmap_opts=opts.VisualMapOpts(),
             title_opts=opts.TitleOpts(title=title,subtitle=subtitle),
         )
     )
     chart_name = f'static/chart{self.index}_heatmap'
     make_snapshot(snapshot,c.render(f'{chart_name}.html'),f'{chart_name}.png',is_remove_html=True)
     self.index += 1
예제 #9
0
def bar_histogram():
    x = Faker.dogs + Faker.animal
    xlen = len(x)
    y = []
    for idx, item in enumerate(x):
        if idx <= xlen / 2:
            bar_item = opts.BarItem(
                    name=item,
                    value=(idx + 1) * 10,
                    itemstyle_opts=opts.ItemStyleOpts(color="#749f83")
                )
        else:
            bar_item = opts.BarItem(
                    name=item,
                    value=(xlen + 1 - idx) * 10,
                    itemstyle_opts=opts.ItemStyleOpts(color="#d48265"),
                )
        y.append(bar_item)

    obj_bar = Bar()
    obj_bar.add_xaxis(x)
    #直方图就是紧挨着的系列柱category_gap=0调节系列柱之间距离,
    # color=Faker.rand_color()因为上面设置了柱的颜色,这里只对图例legend的颜色起作用
    obj_bar.add_yaxis("series0", y, category_gap=0,color=Faker.rand_color())
    obj_bar.set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-直方图(颜色区分)", subtitle="副标题")
    )
    return obj_bar
예제 #10
0
파일: map2.py 프로젝트: chenlong2019/python
def map_without_label() -> Map:
    c = (Map().add("商家A",
                   [list(z) for z in zip(Faker.provinces, Faker.values())],
                   "china").set_series_opts(label_opts=opts.LabelOpts(
                       is_show=False)).set_global_opts(
                           title_opts=opts.TitleOpts(title="Map-不显示Label")))
    return c
예제 #11
0
def test_map3d_schema(fake_writer):
    c = (Map3D().add_schema(
        itemstyle_opts=opts.ItemStyleOpts(),
        map3d_label=opts.Map3DLabelOpts(),
        light_opts=opts.Map3DLightOpts(),
        view_control_opts=opts.Map3DViewControlOpts(),
        post_effect_opts=opts.Map3DPostEffectOpts(),
        realistic_material_opts=opts.Map3DRealisticMaterialOpts(),
        lambert_material_opts=opts.Map3DLambertMaterialOpts(),
        color_material_opts=opts.Map3DColorMaterialOpts(),
    ).add(
        series_name="商家A",
        data_pair=[list(z) for z in zip(Faker.provinces, Faker.values())],
        maptype="china",
        type_=ChartType.LINES3D,
        effect=opts.Lines3DEffectOpts(),
    ))
    c.render()
    _, content = fake_writer.call_args[0]
    assert_in("itemStyle", content)
    assert_in("label", content)
    assert_in("light", content)
    assert_in("viewControl", content)
    assert_in("postEffect", content)
    assert_in("realisticMaterial", content)
    assert_in("lambertMaterial", content)
    assert_in("colorMaterial", content)
예제 #12
0
파일: test.py 프로젝트: TeslaHou/Export_pdf
def bar_base_with_animation():
    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
예제 #13
0
파일: map2.py 프로젝트: chenlong2019/python
def map_guangdong() -> Map:
    c = (Map().add(
        "商家A", [list(z) for z in zip(Faker.guangdong_city, Faker.values())],
        "广东").set_global_opts(
            title_opts=opts.TitleOpts(title="Map-广东地图"),
            visualmap_opts=opts.VisualMapOpts(),
        ))
    return c
예제 #14
0
파일: map2.py 프로젝트: chenlong2019/python
def map_visualmap() -> Map:
    c = (Map().add("商家A",
                   [list(z) for z in zip(Faker.provinces, Faker.values())],
                   "china").set_global_opts(
                       title_opts=opts.TitleOpts(title="Map-VisualMap(连续型)"),
                       visualmap_opts=opts.VisualMapOpts(max_=200),
                   ))
    return c
예제 #15
0
def bmap_base() -> BMap:
    c = (BMap().add_schema(
        baidu_ak=BAIDU_MAP_AK, center=[120.13066322374, 30.240018034923]).add(
            "bmap",
            [list(z) for z in zip(Faker.provinces, Faker.values())],
            label_opts=opts.LabelOpts(formatter="{b}"),
        ).set_global_opts(title_opts=opts.TitleOpts(title="BMap-基本示例")))
    return c
예제 #16
0
def test_map_base(fake_writer):
    c = Map().add(
        "商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china"
    )
    c.render()
    _, content = fake_writer.call_args[0]
    assert_equal(c.theme, "white")
    assert_equal(c.renderer, "canvas")
예제 #17
0
def line_markline() -> Line:
    c = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis(
            "商家A",
            Faker.values(),
            markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
        .add_yaxis(
            "商家B",
            Faker.values(),
            markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="Line-MarkLine"))
    )
    return c
예제 #18
0
def line_itemstyle() -> Line:
    c = (
        Line()
        .add_xaxis(xaxis_data=Faker.choose())
        .add_yaxis(
            "商家A",
            Faker.values(),
            symbol="triangle",
            symbol_size=20,
            linestyle_opts=opts.LineStyleOpts(color="green", width=4, type_="dashed"),
            itemstyle_opts=opts.ItemStyleOpts(
                border_width=3, border_color="yellow", color="blue"
            ),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="Line-ItemStyle"))
    )
    return c
예제 #19
0
def map_base() -> Map:
    c = (Map().add("商家A",
                   [list(z) for z in zip(Faker.provinces, Faker.values())],
                   "china",
                   name_map=ENGLISH_PROVINCE_NAMES).set_global_opts(
                       title_opts=opts.TitleOpts(title="Map-基本示例")).render())

    return c
def pie_with_custom_label():
    pie = Pie(init_opts=opts.InitOpts(theme='light',
                                      width='1000px',
                                      height='600px'))
    pie.add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
    pie.set_series_opts(
        label_opts=opts.LabelOpts(position='top',
                                  color='red',
                                  font_family='Arial',
                                  font_size=12,
                                  font_style='italic',
                                  interval=1,
                                  formatter='{b}:{d}%'
                                  )
    )

    return pie
예제 #21
0
def map_visualmap_piecewise():
    obj_map = Map()
    obj_map.add("中国", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
    obj_map.set_global_opts(
        title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)",subtitle ="副标题"),
        visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),
    )
    return obj_map
예제 #22
0
def bar_markline_type():
    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_series_opts(
        label_opts=opts.LabelOpts(is_show = False),
        markline_opts=opts.MarkPointOpts(
            data = [
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        )
    )
    obj_bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(指定类型)", subtitle="平均值的线"))
    return obj_bar
예제 #23
0
def line_markpoint() -> Line:
    c = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis(
            "商家A",
            Faker.values(),
            markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]),
        )
        .add_yaxis(
            "商家B",
            Faker.values(),
            markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="Line-MarkPoint"))
    )
    return c
예제 #24
0
def pie_rosetype() -> Pie:
    v = Faker.choose()
    c = (Pie().add(
        "",
        [list(z) for z in zip(v, Faker.values())],
        radius=["30%", "75%"],
        center=["25%", "50%"],
        rosetype="radius",
        label_opts=opts.LabelOpts(is_show=False),
    ).add(
        "",
        [list(z) for z in zip(v, Faker.values())],
        radius=["30%", "75%"],
        center=["75%", "50%"],
        rosetype="area",
    ).set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例")))
    return c
예제 #25
0
def ie_rich_label():
    c = (Pie().add(
        "",
        [list(z) for z in zip(Faker.choose(), Faker.values())],
        radius=["40%", "55%"],
        label_opts=opts.LabelOpts(
            position="outside",
            formatter="{a|{a}}{abg|}\n{hr|}\n {b|{b}: }{c}  {per|{d}%}  ",
            background_color="#eee",
            border_color="#aaa",
            border_width=1,
            border_radius=4,
            rich={
                "a": {
                    "color": "#999",
                    "lineHeight": 22,
                    "align": "center"
                },
                "abg": {
                    "backgroundColor": "#e3e3e3",
                    "width": "100%",
                    "align": "right",
                    "height": 22,
                    "borderRadius": [4, 4, 0, 0],
                },
                "hr": {
                    "borderColor": "#aaa",
                    "width": "100%",
                    "borderWidth": 0.5,
                    "height": 0,
                },
                "b": {
                    "fontSize": 16,
                    "lineHeight": 33
                },
                "per": {
                    "color": "#eee",
                    "backgroundColor": "#334455",
                    "padding": [2, 4],
                    "borderRadius": 2,
                },
            },
        ),
    ).set_global_opts(title_opts=opts.TitleOpts(title="Pie-富文本示例")))
    return c
def bar_with_guide_line():
    bar = Bar(init_opts=opts.InitOpts(theme='light',
                                      width='1000px',
                                      height='600px'))
    bar.add_xaxis(Faker.choose())
    bar.add_yaxis('A', Faker.values())
    bar.add_yaxis('B', Faker.values())
    bar.set_series_opts(
        markline_opts=opts.MarkLineOpts(
            data=[
                opts.MarkLineItem(type_="min", name="最小值"),
                opts.MarkLineItem(type_="max", name="最大值"),
                opts.MarkLineItem(type_="average", name="平均值"),
            ]
        )
    )

    return bar
예제 #27
0
def render_filter_legend():
    with st.echo("below"):
        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="我是副标题")
            )
        )
        st_pyecharts(c)
def timeline_bar(timestamp, data1, data2) -> Timeline:
    formatTimeList = []
    for i in timestamp:
        formatTimeList.append(
            time.strftime("%H:%M", time.localtime(int(i) // 1000)))
    tl = Timeline(init_opts=opts.InitOpts(width="900px", height="500px"))
    for i in range(2015, 2020):
        bar = (Bar().add_xaxis(formatTimeList).add_yaxis(
            "商家A",
            Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(
                title_opts=opts.TitleOpts("某商店{}年营业额".format(i))))
        (tl.add(bar, "{}年".format(i)).add_schema(orient="horizontal",
                                                 play_interval=500,
                                                 symbol="circle",
                                                 symbol_size=2,
                                                 pos_bottom="-5px",
                                                 height="37px"))
    return tl
예제 #29
0
def map_world() -> Map:
    c = (Map().add("商家A",
                   [list(z) for z in zip(Faker.country, Faker.values())],
                   "world").set_series_opts(label_opts=opts.LabelOpts(
                       is_show=False)).set_global_opts(
                           title_opts=opts.TitleOpts(title="Map-世界地图"),
                           visualmap_opts=opts.VisualMapOpts(max_=200),
                       ))
    return c
예제 #30
0
def geo_effectscatter() -> Geo:
    c = (Geo().add_schema(maptype="china").add(
        "geo",
        [list(z) for z in zip(Faker.provinces, Faker.values())],
        type_=ChartType.EFFECT_SCATTER,
    ).set_series_opts(label_opts=opts.LabelOpts(
        is_show=False)).set_global_opts(title_opts=opts.TitleOpts(
            title="Geo-EffectScatter")))
    return c