Exemple #1
0
def index(request):
    targetProvinceName = 0
    additionProvinceName = {"四川"}
    gotProvinceName = {"四川"}
    additionMapName = {"四川"}
    v = pneumonia(targetProvinceName, additionProvinceName, gotProvinceName,
                  additionMapName)
    tab = Tab("疫情地图豪华定制版")
    tab.add(v.getSichuanMap("currentConfirmedCount", "现存确诊"), "四川现存")
    tab.add(v.getSichuanMap("confirmedCount", "累计确诊"), "四川累计")
    tab.add(v.getSichuanTable(), "四川表格")
    tab.add(v.getChinaMap("currentConfirmedCount", "现存确诊"), "中国现存")
    tab.add(v.getChinaMap("confirmedCount", "累计确诊"), "中国累计")
    tab.add(v.getProvinceTable(), "各省表格")
    tab.add(v.getWorldMap("currentConfirmedCount", "现存确诊"), "世界现存")
    tab.add(v.getWorldMap("confirmedCount", "累计确诊"), "世界累计")
    tab.add(v.getWorldTable(), "世界表格")
    return HttpResponse(tab.render_embed())
def plot_all(data):
    bonds_data = raw_data_process(data,rate_columns_names="票面利率(发行时)\r\n[单位] %")
    bonds_data['省份'] = bonds_data['省份'].fillna("其他")
    coupon_rate = coupon_rate_summary(bonds_data,group_name="Wind债券二级分类")
    province_analysis = province_data_format(category_analysis(bonds_data, "省份")).round(4)
    industry_analysis = category_analysis(bonds_data, "所属申万行业名称\r\n[行业级别] 一级行业")

    province_analysis_2 = province_data_format(category_analysis(bonds_data, "省份",counts=False)).round(4)
    industry_analysis_2 = category_analysis(bonds_data, "所属申万行业名称\r\n[行业级别] 一级行业",counts=False)

    ranks_analysis = rank(bonds_data)
    hotspot_analysis = usage_analysis(bonds_data)

    daily, cummulative = daily_issue_analysis(bonds_data)

    tc,tq = expireTime(bonds_data)

    tab = Tab(page_title="疫情防控债统计分析")
    tab.add(table_base(coupon_rate), "利率统计")
    tab.add(rate_histogram_plot(bonds_data['票面利率(%)'].replace("--", np.nan).astype(np.float)), "利率分布直方图")
    tab.add(province_analysis_plot(province_analysis), "发行省份统计(数量)")
    tab.add(province_analysis_plot(province_analysis_2),"发行省份统计(金额)")

    tab.add(issuer_industry_plot(industry_analysis), "发行行业统计(数量)")
    tab.add(issuer_industry_plot(industry_analysis_2),"发行行业统计(金额)")

    tab.add(word_clouds(hotspot_analysis), "资金用途热点")

    tab.add(pie_plot(ranks_analysis.drop(["已公布评级","合计"])), "评级统计")

    tab.add(pie_plot(tc),"债券期限统计(数量)")
    tab.add(pie_plot(tq),"债券期限统计(金额)")

    tab.add(daily_issue_plot(daily,cummulative),"每日发行状况统计")

    # table
    province_analysis['占比'] = (province_analysis['占比'].round(2)).astype(str)+"%"
    province_analysis = province_analysis.sort_values(by='数量',ascending=False).astype(str)
    tab.add(table_base(province_analysis),"发行省份统计表(数量)")

    province_analysis_2['占比'] = (province_analysis_2['占比'].round(2)).astype(str)+"%"
    province_analysis_2 = province_analysis_2.sort_values(by='金额(亿)',ascending=False).astype(str)
    tab.add(table_base(province_analysis_2),"发行省份统计表(金额)")

    industry_analysis.index.name = "行业(申万)"
    industry_analysis["占比"] = (industry_analysis['占比']*100).round(2).astype('str')+"%"
    industry_analysis = industry_analysis.sort_values(by='数量',ascending=False)
    tab.add(table_base(industry_analysis),"发行行业统计表(数量)")

    industry_analysis_2.index.name = "行业(申万)"
    industry_analysis_2["占比"] = (industry_analysis_2['占比']*100).round(2).astype('str')+"%"
    industry_analysis_2 = industry_analysis_2.sort_values(by='金额(亿)',ascending=False)
    tab.add(table_base(industry_analysis_2),"发行行业统计表(金额)")

    hotspot_analysis_df = pd.DataFrame(hotspot_analysis).rename(columns={0:"关键词",1:"权重"}).set_index("关键词").round(4)
    tab.add(table_base(hotspot_analysis_df),"热点统计表")

    tab.add(table_base(ranks_analysis),"债券评级统计表")

    t = pd.concat([tc.rename("数量"),tq.rename("总金额(亿)")],axis=1).round(2)
    tab.add(table_base(t),"债券期限统计表")

    df = pd.concat([daily,cummulative],axis=1).round(2)
    df.index = df.index.date.astype(str)
    df.index.name = "日期"
    tab.add(table_base(df),"每日发行状况统计表")
    return tab
Exemple #3
0
                            },
                            {
                                "min": int(max(job_num_list) / 5) * 4,
                                "max": max(job_num_list)
                            },
                        ])))
    return c


if __name__ == '__main__':
    # area = input("please enter the area:")
    # jobkey = input("please enter the jobkey:")
    area = "上海"
    jobkey = "Java"
    data_exp = GetExpData(area, jobkey)
    ex_list, ex_num_list = data_exp.get_data()
    data_tem = GetTemData(area, jobkey)
    tem_list, tem_num_list = data_tem.get_data()
    data_area = GetAreaData(jobkey)
    area_list, job_num_list = data_area.get_data()
    data_pay = GetPayData(area, jobkey)
    pay_list, range_list = data_pay.get_data()

    tab = Tab()
    tab.add(pie_radius(ex_list, ex_num_list), "工作经验")
    tab.add(bar_base(pay_list, range_list), "工资待遇")
    tab.add(wordcloud_base(tem_list, tem_num_list), "工作福利")
    tab.add(map_visualmap(area_list, job_num_list), "全国岗位数量")

    tab.render()
def draw_line_charts(input_data,input_data2,canshu =[],path=''):
    canshu_list = []
    max0 = int(max(input_data[canshu].max())*1.001)
    min0 =  int(min(input_data[canshu].min())*0.995)
    print(max0,min0)
    for i in canshu:
        canshu_dict0 = {}
        canshu_dict0[i] = input_data[i]
        canshu_list.append(canshu_dict0)
    print(input_data.keys())
    print(input_data.tail(100))
    input_data['candle_begin_time'] = pd.to_datetime(input_data['candle_begin_time'])
    time_list = input_data['candle_begin_time'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S')).values.tolist()

    tab = Tab()
    line_base = Line(init_opts=opts.InitOpts(width="1500px", height="700px", theme=ThemeType.DARK)).add_xaxis(time_list)
    line_base.add_yaxis(series_name="close:",
                        y_axis=input_data['close'].values,
                        is_symbol_show=False,

                        color="#FF0000")
    line_base.set_global_opts(
        datazoom_opts=[opts.DataZoomOpts(range_start=95,
            range_end=100,), opts.DataZoomOpts(
            type_="inside",
            range_start=95,
            range_end=100,
            )],
        title_opts=opts.TitleOpts(title="资金曲线变化"),
        tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
        yaxis_opts=opts.AxisOpts(
            is_scale=True,
            axislabel_opts=opts.LabelOpts(is_show=False),
            axisline_opts=opts.AxisLineOpts(is_show=False),
            axistick_opts=opts.AxisTickOpts(is_show=False),
            splitline_opts=opts.SplitLineOpts(is_show=False), ),
            legend_opts=opts.LegendOpts(is_show=True)    )
    for ix,v in enumerate(canshu_list):
        v0:str
        value0:dict
        for k,v0 in v.items():
            name =k
            value0 = v0
        data0 = pd.DataFrame(value0)
        data0.fillna(method='bfill',inplace=True)
        # print(data0)
        line_base.add_yaxis(
            series_name=name,
            y_axis=data0.values.tolist(),
            yaxis_index=2,
            linestyle_opts=opts.LineStyleOpts(),
            label_opts=opts.LabelOpts(is_show=False),
        )
        line_base.extend_axis(
            yaxis=opts.AxisOpts(
            name="资金情况",
            name_location="start",
            type_="value",
            max_= max0,
            min_= min0,
            is_inverse=False,
            axistick_opts=opts.AxisTickOpts(is_show=False),
            splitline_opts=opts.SplitLineOpts(is_show=False),))
    tab.add(line_base,'资金变化')

    table0 = Table().add(list(input_data2.columns), input_data2.values.tolist()).set_global_opts(
                    title_opts=ComponentTitleOpts(title="策略统计", subtitle=str(dt.datetime.now())))
    table0.add_js_funcs('''
    document.write("<p style='color:#FF0000;'>
        注释:none </p>"
                        ''')
    tab.add(table0,'策略统计表')

    html0 =tab.render(path)
    if os.path.exists(html0):
        print("ok!保存在:")
        print(html0)
    else:
        print('保存失败!')
Exemple #5
0
def line_detial_page(cpu, memory, upFlow, downFlow, fps, battery) -> Page:
    line1 = line_cpu(cpu)
    line2 = line_memory(memory)
    line3 = line_upflow(upFlow)

    table1 = table_base(data[0])

    page = (Page().add(table1))
    return page


if __name__ == '__main__':

    print("----" * 20)
    dataFile = readInfo("../info/info.pickle")
    data = dataAnalysis(dataFile)
    monkeyLog = monkeyLogAnalysis(data)

    detial = line_detial_grid(cpu=data[1],
                              memory=data[2],
                              upFlow=data[3],
                              downFlow=data[4],
                              fps=data[5],
                              battery=data[6])

    tab = Tab()
    tab.add(table_base(data[0]), "汇总信息")
    tab.add(detial, "详细信息")
    tab.add(table_traces(monkeyLog), "日志记录")
    tab.render()
Exemple #6
0
def s_5():
    with open(r'cus.csv', 'r') as f:
        reader = csv.reader(f)
        result = list(reader)

    cus_list = [i[0] for i in result]
    total_list = [float(i[1]) for i in result]
    c = (EffectScatter(init_opts=opts.InitOpts(
        width='1200px', height='800px')).add_xaxis(cus_list).add_yaxis(
            "交易次数", total_list,
            label_opts=opts.LabelOpts(is_show=False)).set_global_opts(
                title_opts=opts.TitleOpts(title="本年度交易次数顾客排名分析-TOP20"),
                xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
                    is_show=True)),
                yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
                    is_show=True)),
            ))
    return c


tab = Tab()
tab.add(liquid_0(), "年度关键指标")
tab.add(line_1(), "交易总额")
tab.add(line_2(), "交易次数")
tab.add(pie_3(), "交易种类")
tab.add(s_4(), "省份排名分析")
tab.add(s_5(), "顾客排名分析")
tab.render("tab_base.html")

# In[ ]:
Exemple #7
0
def dong_scatter3(qian_n=10,
                  data={},
                  data2=[],
                  info='',
                  print_data=[0, 0, 0],
                  path0=''):
    from pyecharts import options as opts
    from pyecharts.commons.utils import JsCode
    from pyecharts.charts import Scatter, Timeline, Line, Page, Tab
    from pyecharts.components import Table

    # endlist = ['canshu', 'celue_name', '预测_s_Time', '最终预测值1', 'hg最终预测值1',
    #            '未来end_3', '未来max_back_3', '未来sharp_rate_3', '未来trade_nums_3', '未来win_rate_3']
    data['aim'] = data['canshu'] + data['celue_name']
    dict0 = {
        'hg最终预测值1': '回归=预测值',
        '最终预测值1': '分类=预测值',
        '预测_s_Time': 's_Time',
        '未来end_3': '未来=月终收益',
        '未来max_back_3': '未来=最大回撤',
        '未来sharp_rate_3': '未来=夏普率',
        '未来trade_nums_3': '未来=交易次数',
        '未来win_rate_3': '未来=胜率'
    }
    data.rename(columns=dict0, inplace=True)

    data = data.applymap(lambda x: round(x, 3) if isinstance(x, float) else x)

    # print(data.columns)

    # print(data.tail())
    title = f'动态图:{qian_n}:'

    df = data
    # data['回归=预测值'] = data['回归=预测值'].apply(lambda x: int(x))

    # df['未来=月终收益']=df['未来=月终收益'].apply(lambda x: int(x))
    # df['回归=预测值']=df['回归=预测值'].apply(lambda x: int(x))

    df['s_Time'] = pd.to_datetime(
        df['s_Time'])  # .apply(lambda x:x.strftime(format="%Y-%m-%d"))
    df.sort_values(by=['s_Time'], ascending=True, inplace=True)
    tl = Timeline()
    tl_fl = Timeline()

    timelist = list(set(df['s_Time'].tolist()))
    # sorted(timelist)
    # df_date = [time.strftime('%Y-%m-%d',time.localtime(i/1000000000) ) for i in timelist]
    # print(df_date)
    tjdf = pd.DataFrame()
    timelist = sorted(timelist)
    # 时间散点图
    df_zong = pd.DataFrame()
    for k, i in enumerate(timelist):
        df1 = df[df['s_Time'] == i]
        df0 = df1[df1['分类=预测值'] == df1['分类=预测值'].max()]

        tjindex = [x for x in list(df.keys()) if str(x).startswith('未来')]
        # print(df[df['s_Time']==i][tjindex].mean())
        print(i)
        df0.sort_values(by=['回归=预测值'], ascending=True, inplace=True)
        print(df0.tail(30))
        print(df0.shape)

        df0_ = df0.iloc[-1 * qian_n:]
        tjdf[i] = df0_[tjindex].mean()
        df_zong = df_zong.append(df0_)
        xdata = [t for t in df0['回归=预测值'].values.tolist()]
        yd1 = df0[['未来=月终收益', '回归=预测值', 'aim']]
        if yd1.shape[0] > qian_n:
            ydata1 = yd1.iloc[:].values.tolist()
            ydata2 = yd1.iloc[-1 * qian_n:].values.tolist()
            min_pre = yd1.iloc[-1 * qian_n:]['回归=预测值'].mean()
            max_pre = yd1.iloc[-1 * qian_n:]['回归=预测值'].max()
        else:
            ydata1 = yd1.values.tolist()
            # ydata2 = yd1.values.tolist()
            min_pre = df0['回归=预测值'].mean()
            max_pre = df0['回归=预测值'].max()
        xdata2 = [t for t in df1['分类=预测值'].values.tolist()]
        yd2 = df1[['未来=月终收益', '分类=预测值', 'aim']].values.tolist()

        # print(ydata)
        Scatter0 = (
            Scatter().add_xaxis(xdata).add_yaxis(
                '未来=月终收益',
                ydata1,
                label_opts=opts.LabelOpts(is_show=False, ),
            )
            # .add_yaxis('未来=月终收益', ydata2, label_opts=opts.LabelOpts(is_show=False, ), symbol='triangle')
            .set_global_opts(
                xaxis_opts=opts.AxisOpts(
                    name='预测值:',
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                yaxis_opts=opts.AxisOpts(
                    name='真实值:',
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                title_opts=opts.TitleOpts(title=f"{title}==:{i}", pos_left=30),
                tooltip_opts=opts.TooltipOpts(formatter=JsCode(
                    "function (params) { return '==真实:'+params.value[1] +' <br/>== 预测:'+ params.value[2]+' <br/>== 策略:'+ params.value[3];}"
                ), ),
                visualmap_opts=opts.VisualMapOpts(min_=min_pre, max_=max_pre),
            ))
        min_pre = df0['未来=月终收益'].mean()
        max_pre = df0['未来=月终收益'].max()
        Scatter1 = (Scatter().add_xaxis(xdata2).add_yaxis(
            '未来=月终收益',
            yd2,
            label_opts=opts.LabelOpts(is_show=False, ),
        ).set_global_opts(
            xaxis_opts=opts.AxisOpts(
                name='预测值:',
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True)),
            yaxis_opts=opts.AxisOpts(
                name='真实值:',
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True)),
            title_opts=opts.TitleOpts(title=f"{title}==:{i}", pos_left=30),
            tooltip_opts=opts.TooltipOpts(formatter=JsCode(
                "function (params) { return '==真实:'+params.value[1] +' <br/>== 预测:'+ params.value[2]+' <br/>== 策略:'+ params.value[3];}"
            ), ),
            visualmap_opts=opts.VisualMapOpts(min_=min_pre, max_=max_pre),
        ))
        tl.add(Scatter0, f"{i}")
        tl_fl.add(Scatter1, f"{i}")

    tjdf.fillna(0, inplace=True)
    tjdf = tjdf.applymap(lambda x: round(x, 3) if isinstance(x, float) else x)

    # print(tjdf)
    # exit()

    tl2 = Timeline()
    for wl in tjdf.index:
        wl0 = tjdf.loc[wl]
        # print(wl0)

        line = Line().add_xaxis(list(wl0.index)).add_yaxis(wl, wl0.values.tolist()) \
            .set_global_opts(title_opts=opts.TitleOpts(title=f'前{qian_n}名策略\n统计量:{wl}—变化', pos_left=30))
        tl2.add(line, wl)

    # 统计表格
    talble = Table()
    # [t.strftime(format="%Y-%m-%d")for t   in tjdf.keys()]
    tjdf.columns = tjdf.columns.map(lambda x: x.strftime(format="%Y-%m-%d"))
    tjdf['统计量名称'] = tjdf.index
    tjdf['平均总计'] = tjdf.mean(axis=1)
    # print(tjdf['总计'])
    # exit()
    # print(tjdf.values)
    tjdf = tjdf.applymap(lambda x: round(x, 3) if isinstance(x, float) else x)
    tjdf_columns = list(tjdf.keys())[-2:] + list(tjdf.keys())[:-2]
    tjdf = tjdf[tjdf_columns]
    talble.add(list(tjdf.keys()), tjdf.values.tolist()).set_global_opts(
        title_opts=opts.ComponentTitleOpts(title=f"前{qian_n}名策略的真实未来,的历史统计表格"))

    # 策略推荐表格
    talble2 = Table()
    tjcelue_data = df[df['s_Time'] == timelist[-1]][[
        's_Time', 'canshu', 'celue_name', '分类=预测值', '回归=预测值'
    ]]
    tjcelue_data = tjcelue_data[tjcelue_data['分类=预测值'].notnull()]
    tjcelue_data.sort_values(by='分类=预测值', ascending=True, inplace=True)
    tjcelue_data = tjcelue_data.iloc[-1 * qian_n:]
    talble2.add(
        tjcelue_data.columns.tolist(),
        tjcelue_data.values.tolist()).set_global_opts(
            title_opts=opts.ComponentTitleOpts(title=f"推荐前{qian_n}名策略"))

    talble3 = Table()
    headers_list = ['介绍:', '本次筛选个数', '过滤因子']
    match_df = [print_data]
    talble3.add(headers_list, match_df).set_global_opts(
        title_opts=opts.ComponentTitleOpts(title=f"整体介绍"))

    talble4 = Table()

    new_columns = list(data2.keys())
    newdata = data2.values.tolist()
    talble4.add(new_columns,
                newdata).set_global_opts(title_opts=opts.ComponentTitleOpts(
                    title=f"逐月—策略详情:文件位置:" + path0.split('\\')[0]))
    tab0 = Tab()

    tab0.add(tl, '回归')
    tab0.add(tl_fl, '分类')
    tab0.add(tl2, '逐月统计图')
    tab0.add(talble, '逐月统计表格')
    tab0.add(talble2, '最新月推荐策略')
    tab0.add(talble3, '备注描述')
    tab0.add(talble4, '每月策略详情表')

    tab0.render(path0 + f"{info}.html")
    print(path0 + f"{info}.html")
    return df_zong
Exemple #8
0
def map_world2() -> Map:
    c = (Map().add("2016年女性性自杀率(每10万人)",
                   [list(z) for z in zip(df1["国家"], df1["女性自杀率"])],
                   "world").set_series_opts(label_opts=opts.LabelOpts(
                       is_show=False)).set_global_opts(
                           title_opts=opts.TitleOpts(title="2016年女性自杀率"),
                           visualmap_opts=opts.VisualMapOpts(min_=0, max_=30),
                       ))
    return c


map_world2().render()

tab = Tab()
tab.add(map_world(), "2016年总自杀率")
tab.add(map_world1(), "2016年男性自杀率")
tab.add(map_world2(), "2016年女性自杀率")
tab.render('p2.html')


@app.route('/', methods=['GET'])
def get_out():
    data_str = df.to_html()

    regions_available = regions_available_loaded  # 下拉选单有内容
    return render_template(
        'p1.html',
        the_res=data_str,  # 表
        the_select_region=regions_available)
Exemple #9
0
def anylize_to_html_01(data={}, info=''):
    from pyecharts import options as opts
    from pyecharts.commons.utils import JsCode
    from pyecharts.charts import Scatter, Bar, Timeline, Line, Page, Tab
    from pyecharts.components import Table
    tab0 = Tab()
    data.loc[(data['max_back_1'] != 0),
             '赢撤比'] = -1 * data['end_1'] / data['max_back_1']
    data.loc[(data['max_back_1'] == 0), '赢撤比'] = 0

    data = data[data['end_1'] != 0]
    clm = list(set(data['celue_name'].tolist()))
    print(clm)

    title = f'所有参数的,每个指标的统计状态:'
    tjdf = pd.DataFrame()
    i = 0
    tj_index = {
        'end_1': '最终收益',
        'sharp_rate_1': '夏普率',
        'max_back_1': '最大回撤',
        'win_rate_2': '胜率',
        'trade_nums_1': '交易次数',
        'profit_days_1': '盈利天数',
        '赢撤比': '赢撤比'
    }

    s_tj_index = []
    for clm0 in clm:
        print(clm0)
        df = data[data['celue_name'] == clm0].copy()

        for k, v in df.groupby('para1'):
            print(k)
            index_0 = i + 1
            i = i + 1
            tjdf.loc[index_0, 'para1'] = k
            tjdf.loc[index_0, 'clm'] = clm0

            for tj_ix in tj_index.keys():
                tjdf.loc[index_0, tj_index[tj_ix]] = v[tj_ix].mean()
            tjdf.loc[index_0, '赢撤比2'] = -1 * v['end_1'].mean(
            ) / v['max_back_1'].mean() if v['max_back_1'].mean() != 0 else 0

    print(tjdf)
    print(tjdf.keys())
    tj_index2 = list(tjdf.keys())
    tj_index2.remove('para1')
    tj_index2.remove('clm')
    clm2 = tj_index2
    for x, clm0 in enumerate(clm):
        df0 = tjdf[tjdf['clm'] == clm0].copy()
        tl = Timeline()
        for k, i in enumerate(tj_index2):
            xdata, ydata1 = df0['para1'], df0[['para1', i]]
            print(xdata)
            print(ydata1)
            # exit()
            bar0 = (Bar().add_xaxis(xdata.tolist()).add_yaxis(
                '均值',
                ydata1.values.tolist(),
                label_opts=opts.LabelOpts(is_show=False, ),
            ).set_global_opts(
                xaxis_opts=opts.AxisOpts(
                    offset=0,
                    name='参数名:',
                    type_="value",
                    is_show=True,
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                yaxis_opts=opts.AxisOpts(
                    offset=0,
                    name='均值:',
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                title_opts=opts.TitleOpts(title=f"{title}==:{i}"),
                legend_opts=opts.LegendOpts(pos_right=True),
                tooltip_opts=opts.TooltipOpts(formatter=JsCode(
                    "function (params) { return '==para1:'+params.value[0] +' <br/>== 指标:'+ params.value[1]}"
                ), ),
            ))

            tl.add(bar0, f"{i}")
        tab0.add(tl, clm0)

    for x, clm0 in enumerate(clm2):
        tl = Timeline()
        tjdf0 = tjdf[tjdf['最终收益'] != 0].copy()
        tjdf0.sort_values(clm0, ascending=True, inplace=True)
        df0 = tjdf0.iloc[-1 * int(tjdf0.shape[0] * 0.12):].copy()
        index_list = list(df0.keys())
        index_list.remove('clm')
        df0 = df0[index_list]
        for k, i in enumerate(index_list):
            xdata, ydata1 = df0['para1'], df0[[i, 'para1']]
            print(ydata1)
            sca0 = (Scatter().add_xaxis(xdata.tolist()).add_yaxis(
                '分布值',
                ydata1.values.tolist(),
                label_opts=opts.LabelOpts(is_show=False, ),
            ).set_global_opts(
                xaxis_opts=opts.AxisOpts(
                    offset=0,
                    name='参数名:',
                    type_="value",
                    is_show=True,
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                yaxis_opts=opts.AxisOpts(
                    offset=0,
                    name='分布值:',
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                title_opts=opts.TitleOpts(title=f"{title}==:{i}"),
                legend_opts=opts.LegendOpts(pos_right=True),
                tooltip_opts=opts.TooltipOpts(formatter=JsCode(
                    "function (params) { return '==para1:'+params.value[0] +' <br/>== 指标:'+ params.value[1]}"
                ), ),
            ))

            tl.add(sca0, f"{i}")
        tab0.add(tl, clm0)

    tab0.render(f"{info}.html")
    print(f"{info}.html")
    return
Exemple #10
0
def tab(filename="info"):
    '''
    分页组件
    '''
    tab = Tab()
    tab.add(liquid_data_precision("111"), "前日留存")
    tab.add(bar_datazoom_slider("222"), "分端留存")
    tab.add(table_base("222"), "明细")
    tab.add(line_markpoint("222"), "人群留存")
    tab.add(pie_rosetype("222"), "城市")
    tab.add(grid_mutil_yaxis("222"), "新增留存")
    tab.render_notebook()
    tab.render('{}.html'.format(filename))
Exemple #11
0
    line = (Line()
            .add_xaxis(xaxis_data=x_axis_data)
            .add_yaxis(series_name=legend_name, y_axis=y_axis_data,
                       markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max"),
                                       opts.MarkPointItem(type_="min")])
                       )
            )
    return line


"""建立看板,可切换不同的折线图进行观察,因为后面要添加多张折线图
"""
tab = Tab()
# 逐个创建新的曲线并添加至tab看板下
for weather_key, weather_value in weather_dict.items():
    # 把weather_key中的下划线换成空格呈现在最终的折线图中
    weather_key_modified = weather_key.replace("_", " ")
    tab.add(
        chart=create_line(x_axis_data=month, y_axis_data=weather_value, legend_name=weather_key_modified),
        tab_name=weather_key_modified
    )

# 保存路径
resultPath = "./result"
if not os.path.exists(path=resultPath):
    os.mkdir(path=resultPath)
# 保存文件名
resultFileName = "weather_tab.html"
# 执行多折线图看板的保存
tab.render(path=os.path.join(resultPath, resultFileName))
Exemple #12
0
def index():
    tab = Tab()
    tab.add(grid_horizontal(), "Income_Group")
    tab.add(grid_horizontal1(), "Region")
    tab.add(timeline_map(), "map")
    tab.add(bar_base(), "map-data story")
    tab.add(timeline_pie(), "pie")
    tab.add(line_base(), "pie-data story")
    return Markup(tab.render_embed())
Exemple #13
0
def plot_performance_overview(dict_results, plot_tymod, p):

    if plot_tymod == "pic":

        figs = {}
        for k, v in dict_results.items():
            v = v.unstack()
            series = v.index.get_level_values(0).unique() if isinstance(
                v.index, pd.MultiIndex) else [k]
            c = 3
            r = np.ceil(len(series) / c)

            fig = plt.figure(figsize=(8, 6))
            plt.subplots_adjust(hspace=0.3)

            for i, _s in enumerate(series):

                _data = v.loc[_s] if isinstance(v.index, pd.MultiIndex) else v

                X, Y = np.meshgrid(_data.index, _data.columns, indexing='ij')

                Z = _data.values
                pos = int(r * 100 + c * 10 + (i + 1))
                ax = fig.add_subplot(pos, projection='3d')

                ax.plot_surface(X, Y, Z, color='b')
                ax.set_title("%s" % _s, fontdict={"size": 8})
            figs[k] = fig
            fig.savefig("%s_%s.png" % (p, k))
        return figs
    elif plot_tymod == 'dyn-3d':
        results = {}
        for k, perf in dict_results.items():
            perf = perf.unstack()
            c = (Surface3D(init_opts=opts.InitOpts(
                width="1000px", height="500px")).set_global_opts(
                    title_opts=opts.TitleOpts(title="绩效-曲面波图(%s)" % k),
                    visualmap_opts=opts.VisualMapOpts(
                        max_=perf.values.max(),
                        min_=perf.values.min(),
                        range_color=Faker.visual_color),
                    toolbox_opts=opts.ToolboxOpts(is_show=True),
                ))
            series = perf.index.get_level_values(0).unique() if isinstance(
                perf.index, pd.MultiIndex) else [k]
            for i, _s in enumerate(series):
                _data = perf.loc[_s] if isinstance(perf.index,
                                                   pd.MultiIndex) else perf
                X, Y = np.meshgrid(_data.index, _data.columns)
                d = list(
                    zip(X.flatten().astype(str),
                        Y.flatten().astype(str),
                        _data.values.T.flatten().astype(np.float)))
                c = c.add(
                    series_name=str(_s),
                    shading="color",
                    data=d,
                    xaxis3d_opts=opts.Axis3DOpts(type_="category"),
                    yaxis3d_opts=opts.Axis3DOpts(type_="category"),
                    grid3d_opts=opts.Grid3DOpts(width=100,
                                                height=50,
                                                depth=100),
                )
            results[k] = c

        tab = Tab()
        for k, v in results.items():
            tab.add(v, k)
        tab.render("%s.html" % p)
    elif plot_tymod == "dyn-hm":
        tab = Tab()
        for k, v in dict_results.items():
            v = v.unstack()
            _tl = _timeline(v, name=k)
            tab.add(_tl, k)
        tab.render("%s.html" % p)
    return data_pair


# 用于添加所有绘制出来的漏斗图
tab = Tab()

for monthSheetName in salesBook.sheetnames:
    # 获取该表下用于绘图的数据对
    data_pair = read_data_pair(salesBook[monthSheetName])
    # 绘制漏斗图,要求:
    # 1、隐藏图例;
    # 2、每张图标题设置为:f"{月份}销售"
    # 3、图中每个漏斗项中间的距离为10
    # 4、多漏斗图用看板展示;
    # 5、保存
    funnel = (Funnel().set_global_opts(
        title_opts=opts.TitleOpts(title=f"{monthSheetName}销售"),
        legend_opts=opts.LegendOpts(is_show=False)).add(series_name="",
                                                        data_pair=data_pair,
                                                        gap=10))
    tab.add(chart=funnel, tab_name=f"{monthSheetName}")

# 保存看板图
resultPath = "./result"
if not os.path.exists(resultPath):
    os.mkdir(path=resultPath)
resultFileName = "year_funnel_tab.html"

tab.render(path=os.path.join(resultPath, resultFileName))
Exemple #15
0
def all():
    tab = Tab(page_title='2019年安全公众号统计分析')
    tab.add(article_day_3d(), "公众号文章发布统计")
    tab.add(account_article_num(), "公众号收录文章数")
    tab.add(article_day_num(), "每天收录文章统计")
    tab.add(article_hour_num(), "文章发布时间段")
    tab.add(article_source_url(), "公众号文章来源")
    tab.add(zhaopin(), "公众号文章主题统计")
    tab.add(article_author(), "勤奋作者")
    tab.render(path='./static/year/2019.html')
    print('生成完毕')
Exemple #16
0
def anylize_to_html_02(data={}, fl_style='para1', info='', add_info=''):
    # 根据生成的原始数据
    from pyecharts import options as opts
    from pyecharts.commons.utils import JsCode
    from pyecharts.charts import Scatter, Bar, Timeline, Line, Page, Tab
    from pyecharts.components import Table
    tab0 = Tab()
    data.loc[(data['max_back_1'] != 0),
             '赢撤比'] = -1 * data['end_1'] / data['max_back_1']
    data.loc[(data['max_back_1'] == 0), '赢撤比'] = 0

    data = data[data['end_1'] != 0]

    clm = list(set(data['celue_name'].tolist()))
    print(clm)

    title = f'所有参数的,每个指标的统计状态:'
    tjdf = pd.DataFrame()
    tj_dict = {}
    # 生成分类数据tjdf
    i = 0
    tj_index = {
        'end_1': '最终收益',
        'sharp_rate_1': '夏普率',
        'max_back_1': '最大回撤',
        'win_rate_2': '胜率',
        'trade_nums_1': '交易次数',
        'profit_days_1': '盈利天数',
        '赢撤比': '赢撤比'
    }
    for clm0 in clm:
        print(clm0)
        df = data[data['celue_name'] == clm0].copy()

        for k, v in df.groupby(fl_style):
            print(k)
            index_0 = i + 1
            i = i + 1
            tjdf.loc[index_0, fl_style] = k
            tjdf.loc[index_0, 'clm'] = clm0

            for tj_ix in tj_index.keys():
                tjdf.loc[index_0, tj_index[tj_ix]] = v[tj_ix].mean()
            tjdf.loc[index_0, '赢撤比2'] = -1 * v['end_1'].mean(
            ) / v['max_back_1'].mean() if v['max_back_1'].mean() != 0 else 0

    print(tjdf)
    print(tjdf.keys())
    # exit()
    filter_col = '夏普率'

    df0_dict = {}  #策略名+参数的字典。
    tjdf2 = pd.DataFrame()
    for x, clm0 in enumerate(clm):
        # 每个策略类,按照filter_col排序,根据每个策略回测数量,选取比较高的排名的策略
        df0 = tjdf[tjdf['clm'] == clm0].copy()
        df0.sort_values(filter_col, ascending=True, inplace=True)
        df0 = df0.iloc[-1 * int(df0.shape[0] * 0.35):]
        df0_dict[str(df0.iloc[-1]['clm'])] = list(
            sorted(set(df0[fl_style].tolist())))
        tjdf2 = tjdf2.append(df0, ignore_index=True)
    tjdf2.sort_values('最终收益', ascending=True, inplace=True)
    tjdf2 = tjdf2.iloc[int(tjdf2.shape[0] * 0.1):]
    print(tjdf2)
    tj_index2 = list(tjdf2.keys())
    tj_index2.remove(fl_style)
    tj_index2.remove('clm')
    clm2 = tj_index2
    for x, clm0 in enumerate(clm2):
        tl = Timeline()
        tjdf0 = tjdf2[tjdf2['最终收益'] != 0].copy()
        tjdf0.sort_values(clm0, ascending=True, inplace=True)
        # df0 = tjdf0.iloc[-1*int(tjdf0.shape[0]*0.12):].copy()
        df0 = tjdf0
        index_list = list(df0.keys())
        index_list.remove('clm')
        df0 = df0[index_list]
        for k, i in enumerate(index_list):
            xdata, ydata1 = df0[fl_style], df0[[i, fl_style]]
            print(add_info)
            # print( ydata1)
            sca0 = (Scatter().add_js_funcs(
                f"document.write('%s')" % add_info
            ).add_xaxis(xdata.tolist()).add_yaxis(
                '分布值',
                ydata1.values.tolist(),
                label_opts=opts.LabelOpts(is_show=False, ),
            ).set_global_opts(
                xaxis_opts=opts.AxisOpts(
                    offset=0,
                    name='参数名:',
                    type_="value",
                    is_show=True,
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                yaxis_opts=opts.AxisOpts(
                    offset=0,
                    name='分布值:',
                    type_="value",
                    axistick_opts=opts.AxisTickOpts(is_show=True)),
                title_opts=opts.TitleOpts(title=f"{title}==:{i}"),
                legend_opts=opts.LegendOpts(pos_right=True),
                tooltip_opts=opts.TooltipOpts(formatter=JsCode(
                    "function (params) { return '==canshu:'+params.value[0] +' <br/>== 指标:'+ params.value[1]}"
                ), ),
            ))

            tl.add(sca0, f"{i}")
        tab0.add(tl, clm0)

    tl.render(f"{info}.html")
    print(f"{info}.html")
    return df0_dict
Exemple #17
0
def Create_Combine_Compare(exam_name):
    tab = Tab()
    for i in range(len(exam_name)):
        tab.add(ALL_Exam_Tab[i], exam_name[i])
    tab.render("成绩对比结果.html")
Exemple #18
0
def index():
    tab = Tab()
    tab.add(grid_mutil_yaxis(), "美元指数及GDP增长率")
    tab.add(line_areastyle_boundary_gap(), "1971-1990GDP增长率")
    tab.add(bar_stack1(), "1986-2005外资净投入")
    tab.add(effectscatter_splitline(), "1987-2001泰国汇率变化")
    tab.add(bar_base(), "中美外资净投入对比")
    tab.add(pie_rosetype(), "2018石油产量")
    tab.add(line_base(), "21世纪历年国际油价/美元")
    tab.add(line_base2(), "近年委内瑞拉通货膨胀率")
    tab.add(Pie_base(), "2018中国产业加值占GDP比重%")
    tab.add(Pie_base1(), "2018美国产业加值占GDP比重%")
    tab.add(bar_datazoom_slider(), "中国贸易总额")
    tab.add(line_markpoint(), "中国贸易总额增长率")
    tab.add(pie_base(), "主要国家贸易占比")
    tab.add(table_base(), "历年中国贸易总额")
    tab.add(timeline_map(data), "2012-2018GDP增长率")

    return Markup(tab.render_embed())
Exemple #19
0
                title='图1-6',
                subtitle="四川特殊教育基本情况",  # 设置标题与副标题样式,进行图例说明
                subtitle_textstyle_opts=opts.TextStyleOpts(color="black",
                                                           font_size=15)),
            xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
                is_show=True)),
            yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
                is_show=True)),
        ))
    return c  #返回数据


effectscatter_symbol().render_notebook()

tab = Tab()  #添加tab
tab.add(teachers_map(), "特殊教育专任教师数")
tab.add(schools_map(), "各省特殊教育学校数")
tab.add(recruit_students_map(), "各省特殊教育招生数")
tab.add(all(), "教育支出与特殊教育在校学生详情")
tab.add(finacial_education_map(), "地方财政教育支出")
tab.add(four_compare(), "四个不同省份对比")
tab.add(effectscatter_symbol(), "四川特殊教育基本情况")
tab.render_notebook()


@app.route('/', endpoint='r1', redirect_to='/index')
def root():
    return render_template('index.html')


@app.route('/index')
def get_line_charts():
    hb_confirmed = [int(x) for x in np.array(get_hubei_data())[:, 0]]
    cq_confirmed = [int(x) for x in np.array(get_chongqin_data())[:, 0]]
    tot_confirmed = [int(x) for x in np.array(get_total_data())[:, 0]]
    hb_cured = [int(x) for x in np.array(get_hubei_data())[:, 1]]
    cq_cured = [int(x) for x in np.array(get_chongqin_data())[:, 1]]
    tot_cured = [int(x) for x in np.array(get_total_data())[:, 1]]
    hb_dead = [int(x) for x in np.array(get_hubei_data())[:, 2]]
    cq_dead = [int(x) for x in np.array(get_chongqin_data())[:, 2]]
    tot_dead = [int(x) for x in np.array(get_total_data())[:, 2]]
    line_chart_1 = (
        Line(init_opts=opts.InitOpts())

            .add_xaxis(time_list)
            .add_yaxis('湖北',hb_confirmed, color='#ff6361')
            .add_yaxis('重庆', cq_confirmed, color='#ffa600')
            .add_yaxis('全国', tot_confirmed, color='#bc5090')

            .set_global_opts(
            title_opts=opts.TitleOpts(title='2-8至2-22之间累计确诊病例变化趋势',
                                      pos_left='20%', pos_top='5%'),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type='shadow'),
            legend_opts=opts.LegendOpts(orient='horizontal', pos_left='60%', pos_top='5%'),
            yaxis_opts=opts.AxisOpts(
                name='人数',
                type_='value',
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            )
        )
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False), splitline_opts=opts.SplitLineOpts(is_show=True))

    )

    line_chart_2 = (
        Line()

            .add_xaxis(time_list)
            .add_yaxis('湖北', hb_cured, color='#ff6361')
            .add_yaxis('重庆', cq_cured, color='#ffa600')
            .add_yaxis('全国', tot_cured, color='#bc5090')

            .set_global_opts(
            title_opts=opts.TitleOpts(title='2-8至2-22之间累计治愈病例变化趋势',
                                      pos_left='20%', pos_top='5%'),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type='shadow'),
            legend_opts=opts.LegendOpts(orient='horizontal', pos_left='60%', pos_top='5%'),
            yaxis_opts=opts.AxisOpts(
                name='人数',
                type_='value',
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            )
        )
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False), splitline_opts=opts.SplitLineOpts(is_show=True))

    )

    line_chart_3 = (
        Line()

            .add_xaxis(time_list)
            .add_yaxis('湖北', hb_dead, color='#ff6361')
            .add_yaxis('重庆', cq_dead, color='#ffa600')
            .add_yaxis('全国', tot_dead, color='#bc5090')

            .set_global_opts(
            title_opts=opts.TitleOpts(title='2-8至2-22之间累计死亡病例变化趋势',
                                      pos_left='20%', pos_top='5%'),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type='shadow'),
            legend_opts=opts.LegendOpts(orient='horizontal', pos_left='60%', pos_top='5%'),
            yaxis_opts=opts.AxisOpts(
                name='人数',
                type_='value',
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            )
        )
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False), splitline_opts=opts.SplitLineOpts(is_show=True))

    )
    tab = Tab(page_title='湖北、重庆、全国病例变化趋势')
    tab.add(line_chart_1, '累计确诊人数')
    tab.add(line_chart_2, '累计治愈人数')
    tab.add(line_chart_3, '累计死亡人数')
    return tab
Exemple #21
0
            temp_list.append(line[10])
            # print(temp_list)
            res_list.append(temp_list)
            temp_list = []
            res_name_list.append(line[1])
    table.add(heardes, res_list).set_global_opts(
        title_opts=opts.ComponentTitleOpts(title="院软课题知识数据表(2010-2019)"))
    return table


if __name__ == "__main__":
    time_start = time.time()  # 记录启动时间
    # generate_json()
    # year_str = "2014"
    # opts_title = year_str + "年院软课题知识网络拓扑图绘制"
    # graph_rs(year_str, opts_title).render("..\\000LocalData\\caict_k\\Graph_rs_render.html")
    # 开始尝试tab选项卡多图的展示
    tab = Tab(page_title="院软课题知识网络拓扑图绘制(2010-2019)")
    for year_item in range(2019, 2009, -1):
        opts_title = str(year_item) + "年院软课题知识网络拓扑图绘制"
        tab.add(graph_rs(str(year_item), opts_title), str(year_item) + "年")
    tab.add(table_base(), "数据查询表")
    tab.render("..\\000LocalData\\caict_k\\CAICT_rs_graph_force.html")
    time_end = time.time()  # 记录程序结束时间
    print("=>Scripts Finish, Time Consuming:", (time_end - time_start), "S")
""""
cnzz

<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_4586080'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s11.cnzz.com/stat.php%3Fid%3D4586080%26show%3Dpic2' type='text/javascript'%3E%3C/script%3E"));</script>

"""
def tab_product_base():
    """
    It is used to respond to requests for chart parameters.

    Returns
    -------
    tab : TYPE-echarts parameters
        return echarts parameters.

    """
    tab = Tab()
    tab.add(hist_product_feature_base(), "Product Module")
    tab.add(hist_product_edc_feature_base(), "EDC Feature")
    tab.add(hist_product_deployment_base(), "Product Deployment")
    tab.add(hist_product_support_base(),"Product Support")
    tab.add(hist_product_train_base(), "Product Train")
    tab.add(radar_product_rating_base(),"Product Rating")
    return tab
def draw_charts(kline_data ,canshu ={} ,canshu2={},vol_bar=False,markline_show1 =False ,markline_show2 =False, path = '0501'):
    '''
    df['candle_begin_time','open','high','low','close','volume']
    [['candle_begin_time','open','high','low','close','volume']]

    kdata = df[['open', 'high', 'low', 'close']].values.tolist()
    df['candle_begin_time'].values.tolist()
    :return:
    '''

    df = kline_data.copy()

    df['candle_begin_time'] = pd.to_datetime(df['candle_begin_time'])
    time_list = df['candle_begin_time'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S')).values.tolist()
    vol = df['volume'].values.tolist()
    kline = Kline()
    kline.add_xaxis(xaxis_data=time_list)
    signal_pos_list = []
    if 'signal' in df.columns:
        print('signal,存在!')
        df['pos'] = df['signal'].shift(1)
        for i  in df[df['pos'] > 0].index:
            bar0 = df.iloc[i]
            sig_pos0 = opts.MarkPointItem(name="做多",
                               coord=[bar0['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),bar0.low -2],
                               value='买',
                               symbol ='circle',
                               symbol_size =[20,40],
                               itemstyle_opts = {'color': 'red'})

            signal_pos_list.append(sig_pos0)
        for i in df[df['pos'] < 0].index:
            bar0 = df.iloc[i]
            sig_pos0 = opts.MarkPointItem(name="做空",
                                          coord=[bar0['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),bar0.high +3],
                                          value='卖',
                                          symbol='circle',
                                          symbol_size=[20, 40],
                                          itemstyle_opts={'color': 'blue'})
            signal_pos_list.append(sig_pos0)
        for i  in df[df['pos'] == 0].index:
            bar0 = df.iloc[i]
            sig_pos0 = opts.MarkPointItem(name="平仓",
                               coord=[bar0['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),bar0.low - 2],
                               value='平',
                               symbol ='triangle',
                               symbol_size =[20,40],
                               itemstyle_opts = {'color': 'green'})

            signal_pos_list.append(sig_pos0)
    else :
        df['pos'] =None
    markline =[]
    if markline_show1 and ('signal' in df.columns) :
        area_index_list =[i for i  in df[(df['pos'] ==0)|(df['pos'] >0)|(df['pos'] <0)].index]
        for ix,i in enumerate(area_index_list):
            if ix+1 > len(area_index_list)-1:
                break
            i_now = df.iloc[area_index_list[ix]]
            i_next = df.iloc[area_index_list[ix+1]]
            if (i_now['pos'] >0) or (i_now['pos'] <0) :
                log_info = f"价差:={i_next['open']-i_now['open']}--({i_next['open']}-{i_now['open']})"
            else :
                log_info =f"平仓:{i_next['open']}---开仓:{i_now['open']}"
            sig_area = [{"xAxis": i_now['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),
                            "yAxis": i_now['open'] ,
                            "value": None},
                        {"xAxis": i_next['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),
                         "yAxis": i_now['open'],
                         "value":log_info}]
            sig_area_v = [{"xAxis": i_next['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),
                            "yAxis": i_now['open'] ,
                            "value": None},
                        {"xAxis": i_next['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),
                         "yAxis": i_next['open'],
                         "value":None}]
            markline.append(sig_area)
            markline.append(sig_area_v)

    elif markline_show2 and ('signal' in df.columns):
        area_index_list =[i for i in  df[(df['pos'] ==0)|(df['pos'] >0)|(df['pos'] <0)].index]
        for ix,i in enumerate(area_index_list):
            i_now = df.iloc[area_index_list[ix]]
            i_1_now = df.iloc[area_index_list[ix-1]] if ix != 0 else 0
            if i_now['pos'] == 0:
                log_info = f"交易价: {round(i_now['open'], 1)} +- 2__盈亏:{round(i_now['open'], 1) - round(i_1_now['open'], 1)}"
            else:
                log_info = f"交易价: {round(i_now['open'],1)} +- 2"

            sig_area = [{"xAxis": i_now['candle_begin_time'].strftime('%Y-%m-%d %H:%M:%S'),
                            "yAxis": i_now['open'] ,
                            "value": None},
                        {"xAxis": (i_now['candle_begin_time']+timedelta(minutes=15)).strftime('%Y-%m-%d %H:%M:%S'),
                         "yAxis": i_now['open'],
                         "value":log_info}]

            markline.append(sig_area)


    colors = {'red': 'rgb((220,20,60)','red2': 'rgb((250,20,40)',
              'yangzi': 'rgb(255,0,255)', 'zi': 'rgb(128,0,128)',
              'sehnzi': 'rgb(148,0,211)', 'blue': 'rgb(0,0,255)',
              'qing': 'rgb(0,255,255)', 'black': 'rgb(0,0,0)',
              'shengreen': 'rgb(157,255,212)', 'green': 'rgb(0,255,0)',
              'yellow': 'rgb(255,255,0)', 'glod': 'rgb(218,165,32)',
              'orange': 'rgb(255,165,0)', 'brown': 'rgb(165,42,42)'}
    kline.add_xaxis(xaxis_data=time_list)
    kline.add_yaxis(series_name="oclh",
                    xaxis_index=1,
                    yaxis_index=1,
                    y_axis =df.loc[:, ['open', 'close', 'low', 'high']].values.tolist(),
                    markline_opts=opts.MarkLineOpts(data=markline,
                                                    linestyle_opts=opts.LineStyleOpts(type_='dotted',width=3,color='red',opacity=0.5),
                                                    label_opts=opts.LabelOpts(position="right", color="blue", font_size=13),),
                    #官网给出的样本
                    markpoint_opts=opts.MarkPointOpts(data=signal_pos_list),
                    itemstyle_opts=opts.ItemStyleOpts(color="#ec0090", color0="#00aa3c"), )

    kline.set_global_opts(
                    legend_opts=opts.LegendOpts(is_show=True,pos_top=30, pos_left="left",orient='vertical'),
                    datazoom_opts=[ opts.DataZoomOpts(
                                        is_show=False,
                                        type_="inside",
                                        xaxis_index=[0, 1],
                                        range_start=90,
                                        range_end=100,
                                        orient='vertical'),
                                    opts.DataZoomOpts(
                                        is_show=True,
                                        xaxis_index=[0, 1],
                                        type_="slider",
                                        pos_top="20%",
                                        range_start=90,
                                        range_end=100,orient='vertical'),],
                    yaxis_opts =opts.AxisOpts(
                                is_scale=True,
                                splitarea_opts=opts.SplitAreaOpts(is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),),
                    title_opts=opts.TitleOpts(
                        title = 'K_line',
                        pos_top='middle',
                        title_textstyle_opts=opts.TextStyleOpts(
                            color='black',font_weight='bold' ,font_size=20)),
                    tooltip_opts=opts.TooltipOpts(
                                trigger="axis",
                                trigger_on='"mousemove"',#click|mousemove
                                axis_pointer_type="cross",
                                is_show_content=True,
                                is_always_show_content=True,
                                background_color="rgba(20, 105, 245, 0.1)",
                                border_width=1,
                                border_color= "#ccc",
                                position = ['70%','30%'],
                                textstyle_opts=opts.TextStyleOpts(font_size=10,color="#000"),),
                    visualmap_opts=opts.VisualMapOpts(
                                is_show=True,
                                dimension=2,
                                series_index=5,
                                is_piecewise=True,
                                pieces=[{"value": 1, "color": "#00da3c"},{"value": -1, "color": "#ec0000"},],),
                    axispointer_opts=opts.AxisPointerOpts(
                                is_show=True,
                                link=[{"xAxisIndex": "all"}],
                                label=opts.LabelOpts(background_color="#777"),),
                    brush_opts=opts.BrushOpts(
                                x_axis_index="all",
                                brush_link="all",
                                out_of_brush={"colorAlpha": 0.1},
                                brush_type="lineX",),
    )

    if len(canshu.keys())>0:
        cos = list(colors.values())
        line =  Line()
        for k,v in canshu.items():
            line.add_xaxis(xaxis_data=time_list)
            line.set_global_opts(xaxis_opts=opts.AxisOpts(type_="category"))
            co = cos.pop()
            line.add_yaxis(
            series_name=k,
            y_axis = [y for y in v.values.tolist() if y != np.nan],
            xaxis_index=1,
            yaxis_index=1,
            is_smooth=False,
            is_connect_nones=False,# 是否连接空数据
            is_symbol_show=False,#是否显示值的位置,默认显示。
            color = co,
            is_hover_animation = False, # 是否开启 hover 在拐点标志上的提示动画效果。
            linestyle_opts=opts.LineStyleOpts(width=2, opacity=0.9,color=co),
            label_opts=opts.LabelOpts(is_show =True,position='middle',distance=2,rotate=5,color = 'rgb(165,42,42)'),
            itemstyle_opts=opts.ItemStyleOpts(color=co),)
        kline = kline.overlap(line)

    grid_chart = Grid(init_opts=opts.InitOpts(width = "1500px",height= "700px",theme=ThemeType.DARK))
    grid_chart.add(kline,grid_opts=opts.GridOpts(pos_left="10%", pos_right="8%",pos_top='4%' ,height="70%"))

    if( vol_bar == True) or (len(canshu2.keys())==0):
        bar = Bar()
        bar.add_xaxis(xaxis_data=time_list)
        bar.add_yaxis(
            series_name="volume",
            y_axis=vol,
            xaxis_index=1,
            yaxis_index=2,
            label_opts=opts.LabelOpts(is_show=False), )

        bar.set_global_opts(xaxis_opts=opts.AxisOpts(
            type_="category",
            is_scale=True,
            grid_index=1,
            boundary_gap=False,
            axisline_opts=opts.AxisLineOpts(is_on_zero=False),
            axistick_opts=opts.AxisTickOpts(is_show=False),
            splitline_opts=opts.SplitLineOpts(is_show=False),
            axislabel_opts=opts.LabelOpts(is_show=False),
            split_number=20,
            min_="dataMin",
            max_="dataMax", ),
            yaxis_opts=opts.AxisOpts(
                grid_index=1,
                is_scale=True,
                split_number=2,
                axislabel_opts=opts.LabelOpts(is_show=False),
                axisline_opts=opts.AxisLineOpts(is_show=False),
                axistick_opts=opts.AxisTickOpts(is_show=False),
                splitline_opts=opts.SplitLineOpts(is_show=False), ),
            legend_opts=opts.LegendOpts(is_show=True), )
        grid_chart.add(bar,grid_opts=opts.GridOpts(pos_left="10%", pos_right="8%", pos_top="80%", height="15%"),)

    if len(canshu2.keys())>0 :
        line2 = Line()
        line2.add_xaxis(xaxis_data=time_list)
        for i, k in enumerate(canshu2.keys()):
            co = random.choice(list(colors.values()))
            line2.add_yaxis(
                series_name=k,
                y_axis=[y for y in canshu2[k].values.tolist()],
                xaxis_index=1,
                yaxis_index=i + 1,
                is_smooth=True,
                is_symbol_show=False,
                is_hover_animation=True,
                color=co,
                z_level=0,
                linestyle_opts=opts.LineStyleOpts(width=2, opacity=0.5, color=co),
                label_opts=opts.LabelOpts(is_show=False), )
            if k == list(canshu2.keys())[-1]: continue
            line2.extend_axis(yaxis=opts.AxisOpts(name=k, type_="value", position="right", min_=None, max_=None,
                                                  axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color=co)),
                                                  axislabel_opts=opts.LabelOpts(formatter="{value}"), ))
        line2.set_global_opts(xaxis_opts=opts.AxisOpts(
            type_="category", is_scale=True, grid_index=1, split_number=20, min_="dataMin", max_="dataMax",
            axisline_opts=opts.AxisLineOpts(is_on_zero=False),
            axistick_opts=opts.AxisTickOpts(is_show=False),
            splitline_opts=opts.SplitLineOpts(is_show=False),
            axislabel_opts=opts.LabelOpts(is_show=False), ),
            yaxis_opts=opts.AxisOpts(name=k, grid_index=i + 1, position='right',
                                     splitarea_opts=opts.SplitAreaOpts(is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)),
                                     min_=None, max_=None, is_scale=True, offset=50, ), )
        grid_chart.add(line2,grid_opts=opts.GridOpts(pos_left="10%", pos_right="8%", pos_top="75%", height="23%"),is_control_axis_index=True)


    tab = Tab()

    zijin_data = (kline_data['per_lr'].cumsum())
    zijin_data.fillna(method='ffill', inplace=True)
    zijin_line = Line(init_opts=opts.InitOpts(width = "1500px",height= "700px",theme=ThemeType.DARK)).add_xaxis(time_list)
    zijin_line.add_yaxis(series_name="zijin_line:", y_axis=zijin_data.values, color="#FF0000")
    zijin_line.set_global_opts(

            datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
            title_opts=opts.TitleOpts(title="资金曲线变化"),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
            yaxis_opts = opts.AxisOpts(
                is_scale=True,
                axislabel_opts=opts.LabelOpts(is_show=False),
                axisline_opts=opts.AxisLineOpts(is_show=False),
                axistick_opts=opts.AxisTickOpts(is_show=False),
                splitline_opts=opts.SplitLineOpts(is_show=False), ),
                 legend_opts = opts.LegendOpts(is_show=True)
    )
    tab.add(grid_chart,'kline' )
    tab.add(zijin_line,'资金曲线变化' )
    tab.render(f"{path}.html")
    html0 = tab.render(f"{path}.html")
    if os.path.exists(html0):
        print("ok!保存在:")
        print(html0)
    else:
        print('保存失败!')
Exemple #24
0
    line = Line(init_opts=opts.InitOpts(width="1200px", height="600px"))
    line.add_xaxis(dates)
    line.add_yaxis("确诊", cc_data[0], is_symbol_show=False)
    line.add_yaxis("死亡", cc_data[1], is_symbol_show=False)
    line.set_global_opts(
        title_opts=opts.TitleOpts(title="疫情状况",
                                  pos_top="top",
                                  pos_left="center"),
        legend_opts=opts.LegendOpts(pos_top="5%", pos_left="center"),
    )

    tab = Tab()
    tab.add_js_funcs(
        "var div = document.createElement('div'); var divs = document.createAttribute('style'); divs.value = 'text-align:center'; div.setAttributeNode(divs); var divc = document.createAttribute('class'); divc.value = 'button_group'; div.setAttributeNode(divc); var but = document.createElement('button'); but.innerHTML='"
        + topics[0] +
        "'; but.onclick = function() { window.location.href='index0.html' }; div.appendChild(but); var but = document.createElement('button'); but.innerHTML='"
        + topics[1] +
        "'; but.onclick = function() { window.location.href='index1.html' }; div.appendChild(but); var but = document.createElement('button'); but.innerHTML='"
        + topics[2] +
        "'; but.onclick = function() { window.location.href='index2.html' }; div.appendChild(but); var but = document.createElement('button'); but.innerHTML='"
        + topics[3] +
        "'; but.onclick = function() { window.location.href='index3.html' }; div.appendChild(but); var but = document.createElement('button'); but.innerHTML='"
        + topics[4] +
        "'; but.onclick = function() { window.location.href='index4.html' }; div.appendChild(but); document.body.appendChild(div);"
    )
    tab.add(chart=theme_river, tab_name="议题变化")
    tab.add(chart=bar, tab_name="情绪变化")
    tab.add(chart=line, tab_name="疫情状况")
    tab.add(chart=wc_tl, tab_name="词频统计")
    tab.render("index" + str(topic) + ".html")
Exemple #25
0
# 计算未提交人数
df['已提交'] = df.apply(lambda x: x.value_counts().get(0, 0), axis=1)
print(df)
df['提交率'] = 1 - df.已提交 / (df.columns.size - 1)
df['提交率'] = df['提交率'].apply(lambda x: format(x, '.2'))
print(df.提交率)

xaxis = [
    '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1',
    '1'
]

for i in range(16):
    xaxis[i] = '第' + str(i + 1) + '次'

print(xaxis)


def line_xaxis_type() -> Line:
    c = (Line().add_xaxis(xaxis).add_yaxis(
        '1班_赵丽华', submission_rate(dfz)).add_yaxis(
            "4班_李烨", submission_rate(dfz)).set_global_opts(
                title_opts=opts.TitleOpts(title="正确率"), ))
    return c


tab = Tab()
tab.add(timeline_bar(), "作业平均分对比")
tab.add(line_xaxis_type(), '作业提交率')
tab.render()
Exemple #26
0
import data_spider
import data_analyze
import china_dailyData_line
import china_map
import overseas_map
import overseas_bar
import china_pie
import overseas_worldCloud
from pyecharts.charts import Bar, Grid, Line, Pie, Tab

#数据爬取及分析
data_spider.run()
data_analyze.run()

#数据可视化呈现
tab = Tab()
tab.add(china_map.plot_china_provinces(), "中国疫情数据地图")
tab.add(china_dailyData_line.plot_chinaDayData(),"中国每日疫情数据折线图")
tab.add(china_pie.plot_chinaPie(),"国内省份死亡/治愈人数饼图")
tab.add(overseas_bar.plot_overseasBar(), "海外疫情数据条形图")

tab.add(overseas_map.plot_overseasMap(),"海外疫情数据地图")
tab.add(overseas_worldCloud.plot_countryWordCloud(),"海外疫情国家词云图")
#tab.add(china_ratePie.plot_healDeadPie(), "pie-example")
tab.render("show_view.html")
Exemple #27
0
            position="right",
            offset=80,
            axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(
                color="#5793f3")),
            axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
        ),
        title_opts=opts.TitleOpts(title="Grid-多 Y 轴示例"),
        tooltip_opts=opts.TooltipOpts(trigger="axis",
                                      axis_pointer_type="cross"),
    ))

    line = (Line().add_xaxis(x_data).add_yaxis(
        "平均温度",
        [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
        yaxis_index=2,
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
    ))

    bar.overlap(line)
    return Grid().add(bar,
                      opts.GridOpts(pos_left="5%", pos_right="20%"),
                      is_control_axis_index=True)


tab = Tab()
tab.add(bar_datazoom_slider(), "bar-example")
tab.add(line_markpoint(), "line-example")
tab.add(pie_rosetype(), "pie-example")
tab.add(grid_mutil_yaxis(), "grid-example")
tab.render("Tab_base.html")
Exemple #28
0
        radius=["30%", "75%"],
        center=["75%", "50%"],
        rosetype="area",
    ).set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例")))
    return c


def table_base() -> Table:
    table = Table()

    headers = ["City name", "Area", "Population", "Annual Rainfall"]
    rows = [
        ["Brisbane", 5905, 1857594, 1146.4],
        ["Adelaide", 1295, 1158259, 600.5],
        ["Darwin", 112, 120900, 1714.7],
        ["Hobart", 1357, 205556, 619.5],
        ["Sydney", 2058, 4336374, 1214.8],
        ["Melbourne", 1566, 3806092, 646.9],
        ["Perth", 5386, 1554769, 869.4],
    ]
    table.add(headers, rows).set_global_opts(
        title_opts=opts.ComponentTitleOpts(title="Table"))
    return table


tab = Tab()
tab.add(bar_datazoom_slider(), "bar-example")
tab.add(line_markpoint(), "line-example")
tab.add(pie_rosetype(), "pie-example")
tab.add(table_base(), "table-example")
tab.render("tab_render.html")