コード例 #1
0
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")
コード例 #2
0
def drawFunnel(title, data, savepath='.\\results'):
    if not os.path.exists(savepath):
        os.mkdir(savepath)

    funnel = Funnel()

    items = sorted(data.items(), key=lambda x: x[1], reverse=True)
    funnel.add(title,items,label_opts=opts.LabelOpts(is_show=True))\
    .set_global_opts(title_opts=opts.TitleOpts(title=title),legend_opts=opts.LegendOpts(pos_left="right",orient="vertical"))\
    .render(os.path.join(savepath, '%s.html' % title))
コード例 #3
0
ファイル: areas.py プロジェクト: hxy-111/flask_douban
def show_areas():
    select_all()
    funnel = Funnel(
        init_opts=opts.InitOpts(page_title='豆瓣电影-上映地区分布', height='650px'))
    funnel.add("豆瓣电影TOP250-上映地区分布", [list(z) for z in zip(area, num)])
    funnel.set_global_opts(title_opts=opts.TitleOpts(title="豆瓣电影-上映地区分布",
                                                     pos_left='center'),
                           legend_opts=opts.LegendOpts(is_show=False))
    funnel.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    # 生成HTML
    html = "pages/iframes/areas.html"
    funnel.render("./templates/" + html)
    return html
コード例 #4
0
ファイル: app.py プロジェクト: fangwenxi/python_final
 def funnel_label_inside() -> Funnel:
     c = (Funnel().add(
         "商品",
         [list(z) for z in zip(n, a)],
         label_opts=opts.LabelOpts(position="inside"),
     ).set_global_opts(title_opts=opts.TitleOpts(title="重男轻女")))
     return c
コード例 #5
0
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
コード例 #6
0
ファイル: 漏斗图.py プロジェクト: wwyys/echarts
def funnel_base() -> Funnel:
    c=(
        Funnel()
        .add("豪车",[list(z) for z in zip(['宝马','法拉利','奔驰','奥迪','大众','丰田','特斯拉'],[randint(1,20) for _ in range(7)])])
        .set_global_opts(title_opts=opts.TitleOpts(title="豪车漏斗图"))
    )
    return c
コード例 #7
0
def lou():
    """
    通过漏斗图展示店铺订单的转化效率,绘制需求:

    1.主题为dark

    2.标题为“订单转化效率”,隐藏图例

    3.绘图所用数据对已给出,这里省略从文件读入数据的过程:
    [("访问", 100), ("搜索", 78.12), ("点击", 35.74), ("加购", 17.17), ("订单", 2.62)]

    :return: 绘制好的漏斗图
    """
    # 使用Funnel()函数创建实例赋值给funnel
    # 使用InitOpts(),传入参数theme="dark",赋值给init_opts
    return (
        Funnel(init_opts=opts.InitOpts(theme="dark"))
        .set_global_opts(
            legend_opts=opts.LegendOpts(is_show=False),
            title_opts=opts.TitleOpts(title="订单转化效率")
        )
        .add(
            series_name="",
            data_pair=[("访问", 100), ("搜索", 78.12), ("点击", 35.74), ("加购", 17.17), ("订单", 2.62)],
        )
    )
コード例 #8
0
def woman_985_top10():
    data_raw = analysis_data.get_sex_985()
    levels = ['985', '211']
    womens = {'硕士女生数': 'shuo_woman'}
    res = []
    for level in levels:
        data = data_raw[data_raw['level'] == level]
        for key, value in womens.items():
            data1 = data.sort_values(value,
                                     ascending=False).head(10)[['name', value]]
            # c = (
            #     Pie(init_opts=opts.InitOpts(height='300px'))
            #         .add('', [list(x) for x in data1.values])
            #         .set_global_opts(title_opts=opts.TitleOpts(title=level+'\n'+key ),
            #                          legend_opts=opts.LegendOpts(
            #     type_="scroll", pos_left="80%", orient="vertical"
            # ),)
            #         .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
            # )
            print([list(x) for x in data1.values])
            c = (Funnel().add(
                "商品",
                [list(x) for x in data1.values],
                label_opts=opts.LabelOpts(position="inside"),
            ).set_global_opts(title_opts=opts.TitleOpts(title=level +
                                                        "硕士女生top10"),
                              legend_opts=opts.LegendOpts(pos_top='30%',
                                                          type_="scroll",
                                                          pos_left="0%",
                                                          orient="vertical")))
            print(data1)
            res.append(c)

    return res
コード例 #9
0
ファイル: echarts.py プロジェクト: khle08/Lianjia
 def funnel_label_inside(self, key, value, title) -> Funnel:
     c = (Funnel().add(
         "租房",
         [list(z) for z in zip(key, value)],
         label_opts=opts.LabelOpts(position="inside"),
     ).set_global_opts(title_opts=opts.TitleOpts(title=title)))
     return c
コード例 #10
0
ファイル: tmall.py プロジェクト: Y12302527outlook/BAproject
def Conversion_rates(df):
    '''
    目标:订单每个环节的转化转化率
    :param df:
    :return:
    '''
    rates = pd.Series(
        {
            '创建': df['订单创建时间'].count(),
            '付款': df['订单付款时间'].count(),
            '实际成交': df[df['买家实际支付金额'] > 0].shape[0],
            '全额成交': df[df['买家实际支付金额'] == df['总金额']].shape[0],
        },
        name='订单量').to_frame()
    # 绝对转化率=各环节订单数/订单创建数
    rates['整体转化率'] = rates['订单量'].apply(
        lambda x: round(x * 100 / rates.iloc[0, 0], 3))
    # 相对转化率=各项指标/上一个流程的指标
    # rates['相对转化率']=(rates/rates.shift())['订单量'].fillna(1)
    print(f'\n{"-"*5}各环节绝对转化率(%){"-"*5}\n')
    print(rates)

    c = (
        Funnel().add(
            '转化率',
            [list(z) for z in zip(rates.index, rates['整体转化率'])],
            # 设置标签位置及数据展现形式
            label_opts=opts.LabelOpts(
                position='inside', formatter='{b}:{c}')).set_global_opts(
                    title_opts=opts.TitleOpts(title='整体转化率(%)')))
    # 转存
    make_snapshot(snapshot, c.render(), '转化率1.png')
コード例 #11
0
def funnel_base() -> Funnel:
    c = (
        Funnel()
        .add("商品", [list(z) for z in zip(Faker.choose(), Faker.values())])
        .set_global_opts(title_opts=opts.TitleOpts(title="Funnel-基本示例"))
    )
    return c
コード例 #12
0
def customized_visualization(key_list):
    latest_time = os.path.getmtime("ZhihuRanking.txt")  # 这个是Unix时间,需要转换为人类的时间
    latest_time = time.localtime(latest_time)
    latest_time = time.strftime("%Y-%m-%d %H:%M:%S", latest_time)
    latest_time = str(latest_time)
    size_list = []  # 这个用来决定每个热度的大小
    ranking_list = []  # 这个是把话题写进去
    ini = 200
    for i in range(50):
        ini = int(ini * 0.9) + 2
        size_list.append(ini)

    list_len = len(key_list)
    for i in range(list_len):
        size_list[key_list[i] - 1] = 350

    with open("ZhihuRanking.txt", 'r', encoding='utf-8') as f:
        lines = f.readlines()
        for line in lines:
            line = line[4:].strip('\n')  # 这里要注意把空格吃掉
            ranking_list.append(line)

    c = (
        Funnel(init_opts=opts.InitOpts(width="2048px", height="1080px"))
        .add("热搜关键词", [list(z) for z in zip(ranking_list, size_list)], label_opts=opts.LabelOpts(position="top"),
             gap=1, tooltip_opts=opts.TooltipOpts())
        .set_global_opts(title_opts=opts.TitleOpts(title="知乎热榜+关键词自定义排名  更新于 " + latest_time),
                         legend_opts=opts.LegendOpts(type_='scroll', orient='vertical', pos_left='0%', pos_top='20%'),
                         tooltip_opts=opts.TooltipOpts(is_show=True))
        .render("知乎热榜实时排名.html")
    )
コード例 #13
0
def funnel_label_inside():
    data = [z for z in zip(Faker.choose(), Faker.values())]
    c = (Funnel().add(
        'Items', data,
        label_opts=opts.LabelOpts(position='inside')).set_global_opts(
            title_opts=opts.TitleOpts(title='Funnel-Label (insider)')))

    return c
コード例 #14
0
def funnel_base():
    data = [z for z in zip(Faker.choose(), Faker.values())]
    print(data)
    c = (Funnel().add(
        'Items',
        data).set_global_opts(title_opts=opts.TitleOpts(title='Funnel-base')))

    return c
コード例 #15
0
ファイル: tutu.py プロジェクト: dhjl1807/dhjlrepo
def edusalary(edu) -> Funnel:
    edu, d = Job().edusalary_data(edu)
    c = (
        Funnel()
        #         .add("商品", [list(z) for z in zip(Faker.choose(), Faker.values())])
        .add("不知道是啥", d).set_global_opts(
            title_opts=opts.TitleOpts(title="主要城市薪资对比", subtitle=edu)))
    return c
コード例 #16
0
ファイル: app.py プロジェクト: LEETONGTONG/Python_project
def funnel_label_inside() -> Funnel:
    c = (Funnel().add(
        "排名总和",
        [list(z) for z in zip(df5['地区'], df5['排名总和'])],
        label_opts=opts.LabelOpts(position="inside"),
    ).set_global_opts(title_opts=opts.TitleOpts(title="36个主要城市六个维度排名总和"),
                      legend_opts=opts.LegendOpts(type_='scroll', pos_top=25)))
    return c
コード例 #17
0
ファイル: male_female.py プロジェクト: 18686622933/data_V
def funnel_label_inside(title, data):
    c = (Funnel(init_opts=opts.InitOpts(height="500px")).add(
        "", data,
        label_opts=opts.LabelOpts(position="inside")).set_global_opts(
            title_opts=opts.TitleOpts(title=title),
            legend_opts=opts.LegendOpts(is_show=False),
        ))
    return c
コード例 #18
0
ファイル: echarts_display.py プロジェクト: menhuan/notes
def show_funnel_image():
    recruiter = pandas.read_csv("recruiter.bak.csv")
    work_time = recruiter.groupby(['work_time'])['work_time'].count()
    funnel = (Funnel().add(
        "工作年限",
        [list(z) for z in zip(list(work_time.index), work_time.tolist())],
        label_opts=options.LabelOpts(position="inside")).set_global_opts(
            title_opts=options.TitleOpts(title="工作年限漏斗图")))
    funnel.render("funnel.html")
コード例 #19
0
def funnel_sort_ascending() -> Funnel:
    c = (
        Funnel().add(
            "学习进度",
            [("第一课", 18), ("第二课", 12), ("第三课", 7), ("第四课", 5), ("第五课", 1)],
            #sort_="none",
            label_opts=opts.LabelOpts(position="inside"),
        ).set_global_opts(title_opts=opts.TitleOpts(title="学习进度")))
    return c
コード例 #20
0
def funnel_sort_ascending() -> Funnel:
    c = (Funnel().add(
        "商品",
        [list(z) for z in zip(Faker.choose(), Faker.values())],
        sort_="ascending",
        label_opts=opts.LabelOpts(position="inside"),
    ).set_global_opts(title_opts=opts.TitleOpts(
        title="Funnel-Sort(ascending)")))
    return c
コード例 #21
0
ファイル: analysis.py プロジェクト: peng5550/DecryptLogin-1
def drawFunnel(title, data, savepath='./results'):
    checkDir(savepath)
    funnel = (Funnel(init_opts=options.InitOpts(theme=ThemeType.MACARONS)).add(
        '', [list(item) for item in data.items()],
        label_opts=options.LabelOpts(position="inside")).set_global_opts(
            title_opts=options.TitleOpts(title=title, pos_left='center'),
            legend_opts=options.LegendOpts(orient='vertical',
                                           pos_top='15%',
                                           pos_left='2%')))
    funnel.render(os.path.join(savepath, title + '.html'))
コード例 #22
0
def funnel_sort_ascending():
    data = [z for z in zip(Faker.choose(), Faker.values())]
    c = (Funnel().add(
        'Items',
        data,
        sort_='ascending',
        label_opts=opts.LabelOpts(position='inside')).set_global_opts(
            title_opts=opts.TitleOpts(title='Funnel-Sort (ascending)')))

    return c
コード例 #23
0
ファイル: edu_data.py プロジェクト: 18686622933/data_V
def funnel_label_inside(title, data) -> Funnel:
    c = (Funnel().add(
        "",
        data,
        label_opts=opts.LabelOpts(position="inside"),
    ).set_global_opts(
        title_opts=opts.TitleOpts(title=title),
        legend_opts=opts.LegendOpts(is_show=False),
    ))
    return c
コード例 #24
0
def class_grade_distributed(class_index: int) -> (Funnel, dict):
    students: list = Student.query.filter_by(class_index=class_index)
    data = {'A+': 0, 'A': 0, 'B+': 0, 'B': 0, 'C+': 0, 'C': 0, }
    for student in students:
        data[student.analysis[0].get_level()] += 1
    chart = (
        Funnel(init_opts=opts.InitOpts(width='100%', height='400px', theme=ThemeType.VINTAGE))
            .add('level', [list(z) for z in zip(data.keys(), data.values())],
                 sort_="none", gap=5, label_opts=opts.LabelOpts())
    )
    return chart, data
コード例 #25
0
 def funnel(self, title=None, attr=None, value=None, two_title=None):
     """
     漏斗图
     :param title: 数据可视化的标题(字符串)
     :param attr: 名称列表[列表]
     :param value: 名称列表对应数据
     :param two_title: 二级小标题(鼠标悬浮显示小标题)
     :return:漏斗图
     """
     attr2 = attr
     value = value
     funnel = Funnel(title)
     funnel.add(two_title,
                attr2,
                value,
                is_label_show=True,
                label_pos='inside',
                label_text_color='#fff')
     self.page.add(funnel)
     self.page.render()
コード例 #26
0
ファイル: views.py プロジェクト: macrosalt/rentingInfoSpider
def costFunnel(city) -> Funnel:
    sql = "select rent from house where 1 = 1"
    with connection.cursor() as cursor:
        if city is not None and city != "":
            sql += " and city = %s"
            cursor.execute(sql, [city])
        else:
            cursor.execute(sql)
            city = "所有"
        rows = cursor.fetchall()
    list = []
    for row in rows:
        list.append(row[0])
    a = 0
    b = 0
    c = 0
    d = 0
    e = 0
    f = 0
    g = 0
    for i in list:
        if i < 1000:
            a += 1
        elif i < 2000:
            b += 1
        elif i < 3000:
            c += 1
        elif i < 4000:
            d += 1
        elif i < 5000:
            e += 1
        elif i < 8000:
            f += 1
        else:
            g += 1
    x_data = [
        '1000以下', '1000-2000', '1000-3000', '3000-4000', '4000-5000',
        '5000-8000', '8000以上'
    ]
    y_data = [a, b, c, d, e, f, g]
    data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
    c = (Funnel().add(
        series_name=city,
        data_pair=data,
        gap=2,
        tooltip_opts=opts.TooltipOpts(trigger="item",
                                      formatter="{a} <br/>{b} : {c}%"),
        label_opts=opts.LabelOpts(is_show=True, position="inside"),
        itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
    ).set_global_opts(title_opts=opts.TitleOpts(
        title=city, title_textstyle_opts=opts.TextStyleOpts(
            font_size=23))).dump_options_with_quotes())
    return c
コード例 #27
0
def funnelChart(df):
    all_columns = df.columns
    columns_to_plot = st.selectbox("Select 1 column",all_columns,key='aa' )
    columns_to_plot1 = st.selectbox("Select 2 column",[col for col in df.columns if col not in [columns_to_plot]], key='bb' )
        # columns_to_plot2 = st.selectbox("Select 1 column",all_columns, key='c' )
        # columns_to_plot3 = st.selectbox("Select 1 column",all_columns, key='d' )
        # columns_to_plot4 = st.selectbox("Select 1 column",all_columns, key='e' )
    cje = df[columns_to_plot].tolist()
    other_var1 = df[columns_to_plot1].tolist()
        # other_var2 = df[columns_to_plot2].tolist()
        # other_var3 = df[columns_to_plot3].tolist()
        # other_var4 = df[columns_to_plot4].tolist()
        
        
    funnel = Funnel(init_opts = opts.InitOpts(width='900px', height='1200px'))
    funnel.add('', [list(z) for z in zip(cje, other_var1)],
        label_opts=opts.LabelOpts(position="inside"),)
        
        
       
    return funnel
コード例 #28
0
def funnel_sort_ascending(study_progress) -> Funnel:
    c = (
        Funnel()
        .add(
            "学习进度",
            study_progress,
            #sort_="none",
            label_opts=opts.LabelOpts(position="inside"),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="学习进度"))
    )
    return c
コード例 #29
0
def setfunnel():
    data = [['报名人数/万', 238], ['招生人数', 85.7966], ['录取人数', 76.2]]

    c = (Funnel(init_opts=opts.InitOpts(width="300x", height="600px")).add(
        series_name="",
        data_pair=data,
        gap=2,
        tooltip_opts=opts.TooltipOpts(trigger="item",
                                      formatter="{a} <br/>{b} : {c}%"),
        label_opts=opts.LabelOpts(is_show=True, position="inside"),
        itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
    ).set_global_opts(title_opts=opts.TitleOpts(title="2018年报名数、招生数、录取数漏斗图")))
    return c
コード例 #30
0
def drawfunnel(title, data, savepath):
    if not os.path.exists(savepath):
        os.mkdir(savepath)
    pie = (Funnel().add(
        "",
        list(zip([i for i, j in data.items()], [j for i, j in data.items()])),
        label_opts=options.LabelOpts(position='inside')).set_global_opts(
            title_opts=options.TitleOpts(title=title),
            toolbox_opts=options.ToolboxOpts(),
            legend_opts=options.LegendOpts(pos_left='20px',
                                           pos_top='40px',
                                           orient='vertical')))
    pie.render(os.path.join(savepath, '{}.html'.format(title)))